如果第二个表没有匹配的信息,如何加入2表

时间:2016-08-10 02:10:19

标签: mysql sql

Hy,我有一张这样的桌子:

Table colors :
----------------------------
| colorsid   code    name  |
----------------------------
|   1         aaa    yellow|
|   2         bbb    red   |
|   3         ccc    green |
----------------------------

Table pictures :
---------------------------
| picid   file    typeid  |
---------------------------
|   5     ooo.png    1    |
|   6     ccc.jpg    2    |
---------------------------

结果应该是这样的:

------------------------------------------------------
| colorsid   code    name     picid   file     typeid|
------------------------------------------------------
|   1         aaa    yellow     5      ooo.png    1  |
|   2         bbb    red        6      ccc.png    2  |
|   3         ccc    green                           |
------------------------------------------------------

我尝试使用sql join(left,right,cross,inner)但结果总是显示2条记录。谁能帮我 ?

2 个答案:

答案 0 :(得分:1)

SELECT *
FROM colors
LEFT JOIN pictures ON
colors.id = pictures.typeid

答案 1 :(得分:0)

澄清以上内容:

JOIN本身就是*INNER* JOIN的同义词。结果只包含匹配的行。只返回两个表中具有值的行。

然而,有两种*OUTER* JOINLEFTRIGHT

在这种情况下,{{1> LEFT侧的表格或RIGHT侧的表格中的{em>所有行{{1> }})将包含在结果集中。如果该表中存在匹配的行,则来自另一侧表的值将包含在中;否则,这些列中的值将为JOIN

这似乎完全你在这里寻找的东西......