left joinright joininner join操作演示

    技术2022-05-11  73

    From: http://www.cnblogs.com/temptation/archive/2006/05/23/407328.html 表A记录如下: aID        aNum 1           a20050111 2           a20050112 3           a20050113 4           a20050114 5           a20050115 表B记录如下: bID        bName 1            2006032401 2           2006032402 3           2006032403 4           2006032404 8           2006032408 实验如下: 1.left join sql语句如下: select * from A left join B on A.aID = B.bID 结果如下: aID        aNum                   bID           bName 1            a20050111         1               2006032401 2            a20050112         2              2006032402 3            a20050113         3              2006032403 4            a20050114         4              2006032404 5            a20050115         NULL       NULL (所影响的行数为 5 行) 结果说明:         left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的. 换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID). B表记录不足的地方均为NULL. 2.right join sql语句如下: select * from A right join B on A.aID = B.bID 结果如下: aID        aNum                   bID           bName 1            a20050111         1               2006032401 2            a20050112         2              2006032402 3            a20050113         3              2006032403 4            a20050114         4              2006032404 NULL    NULL                   8              2006032408 (所影响的行数为 5 行) 结果说明:         仔细观察一下,就会发现,和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充. 3.inner join sql语句如下: select * from A innerjoin B on A.aID = B.bID 结果如下: aID        aNum                   bID           bName 1            a20050111         1               2006032401 2            a20050112         2              2006032402 3            a20050113         3              2006032403 4            a20050114         4              2006032404 结果说明:         很明显,这里只显示出了 A.aID = B.bID的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录. 

    最新回复(0)