羊皮纸论坛

羊皮纸论坛

分享让知识传播,阅读让心灵成长, 创作让文化传承,让我们共同努力。
  • 禁止广告文
  • 知识传播
  • 阅读
  • 心灵成长
  • 创作
  • 文化传承
论坛目录 / 程式设计 / 资料库 / Mysql /

用SQL合并资料表

发表新主题
随机主题
上个主题
下个主题
|
    用SQL合并资料表

    ???

    INNER JOIN 方法

    Sql = "SELECT * FROM 资料表1 INNER JOIN 资料表2 ON 条件"

    SELECT * 的 * 代表所有栏位, 也就是从资料表选取所有栏位.
    INNER JOIN的意思是将资料表1与资料表2合并, 而 ON 之後的条件要成立.
    这条件怎麽写呢?
    假如说资料表1有一个class栏位而资料表2也有一个class栏位, 那ON你可以写资料表1.class = 资料表2.class
    xxx.yyy , xxx代表的是资料表, yyy代表的是栏位名称.

    现在如果将这整段写出来的话:

    程式项目名称
    1. /* 原始程式码 */
    2. Sql = "SELECT * FROM 资料表1 INNER JOIN 资料表2 ON 资料表1.class = 资料表2.class"

    意思也就是如果资料表1的class栏位与资料表2的class栏位数值相等就将他们合并, 如果资料表1的class栏位含有资料表2的class栏位没有的数值, 就将其剔除, 反推亦同. INNER JOIN的意思就是当两个资料表的某栏位含有相同的资料再合并, 如果没有就剔除.

    执行上面这段SQL以後就会产生一个同时含有资料表1与资料表2的资料的新资料表, 中间的连结栏位是用两个资料表的class栏位.

    这个技巧可以怎麽使用呢? 就拿文章系统来讲, 如果你有一个文章列表, 和一个文章分类.
    文章列表中纪录每一个文章的资料和分类, 而文章分类纪录著分类资讯, 你可以用这个方法来将两个资料表暂时合并 (在SQL被执行时合并) 来同时存取两个资料表的资料.

    RIGHT JOIN 方法

    刚刚的 INNER JOIN是很棒没有错, 但是如果今天有一个文章分类里面没有任何的文章, 那由於文章列表中没有对应的分类资料, 该分类就会被剔除...这...不大对吧?! 因此还有RIGHT JOIN的方法.

    程式项目名称
    1. /* 原始程式码 */
    2. Sql = "SELECT * FROM 资料表1 RIGHT JOIN 资料表2 ON 资料表1.class = 资料表2.class"

    其实大致上和刚刚是一样的, 只是RIGHT JOIN会以资料表2, 也就是运算子的右边的资料表为重, RIGHT JOIN会将所有右边资料表 (也就是资料表2) 的资料都加进来, 而只将左边资料表 (资料表1) 符合的资料加进来.

    这样在做文章分类清单的时候, 就算一个文章列表里面没有任何文章, 那该分类仍然会显示出来.

    LEFT JOIN 方法

    有RIGHT JOIN, 当然就有 LEFT JOIN...

    程式项目名称
    1. /* 原始程式码 */
    2. Sql = "SELECT * FROM 资料表1 LEFT JOIN 资料表2 ON 资料表1.class = 资料表2.class"

    其实就是一样的意思啦, 之前的RIGHT JOIN是包含所有右边资料表的内容, 那LEFT JOIN当然就是包含所有左边资料表的内容棉!
    只要记得:

    • INNER JOIN - 两边的资料表拥有相同的优先权, 要两边都有的资料才会被包含在新的资料表.
    • RIGHT JOIN - 右边的资料表拥有优先权, 右边所有的资料都会被包含, 而左边只有符合的资料才会被包含.
    • LEFT JOIN - 左边的资料表拥有优先权, 左边所有的资料都会被包含, 而右边只有符合的资料才会被包含.
    • 本文为转载文章 [原文]
    • 关键字 : class, RIGHT, INNER, SELECT, 程式项目名称, 原始程式码, 右边资料表, 这条件怎麽写呢, 这个技巧可以怎麽使用呢, 资料表为重, 资料表1与资料表2, 资料加进来, 资料再合并, 该分类就会, 该分类仍然会显示出来, 而文章分类纪录, 而只将左边资料表, 由於文章列表中没, 用两个资料表, 来同时存取两个资料表
    00
    2013-12-05T15:08:00+0000


    • 当您未登入羊皮纸时,可以利用脸书 Facebook 登入来发表回响。若使用羊皮纸会员身份发表回响则可获得经验值及虚拟金币,用来参加羊皮纸推出的活动。
    发表回响
     
    验证字串
    留言

    Facebook 粉丝专页

    QRCode 条码 & APP 连结

    说明
    本页网址

    在相关服务标签中,『扫描条码,在行动装置』或是『点击连结按钮,在本装置』中开启网页或是 APP 相关操作。
    QRCode