SQL从多个表中选择

时间:2013-08-01 18:08:58

标签: sql select left-join

users中的2个表phonesphonesiduser idphone还是category 我希望从users中选择全部,并为每个用户的手机选择哪个类别为1,但如果用户没有手机,我也想选择不带手机的手机。

SELECT * 
FROM users
   LEFT JOIN phones ON users.id = phones.id 
WHERE phones.category = 1

此选择仅在user具有phone时才正确,但如果用户没有电话,则不会选择此用户。如果user不是phone,如何更改选择用户?

1 个答案:

答案 0 :(得分:5)

SELECT * FROM users 
Left JOIN phones 
ON users.id = phones.id and phones.category = 1 

如果您在左侧或右侧连接中使用的位置比内部连接的位置要好,请尝试如上所述 要么 你可以这样试试。

SELECT * FROM users 
Left JOIN phones 
ON users.id = phones.id where ( phones.category = 1 OR phones.category is null)