【问题标题】:SQLselect from multiple tableSQL从多个表中选择
【发布时间】:2013-08-01 18:08:57
【问题描述】:

是 2 个表 usersphones,在表 phones 中是 iduser idphonecategory 我想从users 中全选,并为每个用户的电话类别为 1,但如果用户没有电话,我也想选择他的没有电话。

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

此选择仅在userphone 时正确,但如果用户没有电话,则不会选择此用户。如果 user not havo phone ,如何更改选择它也选择用户?

【问题讨论】:

    标签: sql select left-join


    【解决方案1】:
    SELECT * FROM users 
    Left JOIN phones 
    ON users.id = phones.id and phones.category = 1 
    

    如果你在左连接或右连接中使用 where ,它将表现得像内连接,所以尝试像上面那样 或者 你可以这样试试。

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

    【讨论】:

    • 虽然如果你使用第二个,将OR条件放在()中。相信我,当有人稍后在查询中添加另一个条件时,您不希望它被误解。我从不使用不带括号的 OR。
    猜你喜欢
    • 2011-02-01
    • 2021-02-06
    • 2015-08-24
    • 1970-01-01
    • 2020-11-22
    • 2016-12-22
    • 2012-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多