MySQL从多个表中选择

时间:2012-05-28 14:03:30

标签: mysql select

我有一些代码(继承)从表'members'中选择一行,并从表'image'中的一行中选择一些细节:

SELECT members.main,members.id,image.main,image.thumb,bio,
altered,members.title,author 
FROM members,image WHERE members.main = image.id

除了那些字段'members.main'为空的情况外,这在所有情况下都能正常工作。有没有办法保持此代码的相同功能(即将成员与图像匹配),同时迎合'members.main'为空的情况?

我试过

WHERE members.main = image.id OR members.main = ''

但这会导致结果出现乱码。

谢谢,

1 个答案:

答案 0 :(得分:3)

使用左外连接:

SELECT
    members.main,
    members.id,
    image.main,
    image.thumb,
    bio,
    altered,
    members.title,
    author
FROM members
LEFT JOIN image
ON members.main = image.id

LEFT JOIN返回左表(成员)中的所有行,无论它们是否与右表(图像)中的行匹配。