有一张visits1表跟visits2表
1表
id,bookid,visits
1     1      23
2     2      162表
id,bookid,visits
1     1      13
2     3      43显示
bookid  表1.visits   表2.visits
1         23        13
2         16        null
3         null       43我要把所有的信息都显示出来,上面用条左连接可以做到,1表的信息显示,2表的显示null。
但如果我现在的信息是1表中没有,而在2表中有,那样可以用右连接做到。1表显示null,2表的信息显示。
我现在的表中有上面我说的两种情况,

解决方案 »

  1.   

    看不看得到没关系,
    LEFT JOIN
    UNION
    RIGHT JOIN
      

  2.   

    mysql> select a.bookid,a.visits v1,b.visits v2 from visits1 a left join visits2 b on a.bookid=b.bookid
        -> union
        -> select a.bookid,b.visits,a.visits  from visits2  a left join visits1 b on a.bookid=b.bookid;
    +--------+------+------+
    | bookid | v1   | v2   |
    +--------+------+------+
    |      1 |   23 |   13 |
    |      2 |   16 | NULL |
    |      3 | NULL |   43 |
    +--------+------+------+
    3 rows in set (0.00 sec)
      

  3.   

    可以把left join和right join的两次结果union起来就行了。