【问题标题】:MySQL If Else StatmentMySQL If Else 语句
【发布时间】:2014-08-01 17:55:23
【问题描述】:

这是一个示例查询:

SELECT tags.serial_number, tags.expiry_date, tags.activation_date, users.email, users.offers, users.newsletter, pets.name as petname
    FROM `tags`
    JOIN `users` on users.id = tags.user_id
    JOIN `pets` on pets.id = tags.pet_id
    WHERE  users.username = 'myusername' AND  users.email = 'itsme@mydomain.com'

在这种情况下,将返回的唯一结果是分配给用户和宠物的那些标签。但我想要的是能够接收所有标签,无论它们是否分配给宠物。

如果有某种“如果有宠物,显示宠物名,否则只将宠物名返回为NULL”或类似的东西?

【问题讨论】:

    标签: php mysql database


    【解决方案1】:

    尝试使用Left Outer Join,它将填充不使用 Null 连接到表的行

    SELECT tags.serial_number, tags.expiry_date, tags.activation_date, users.email, users.offers, users.newsletter, pets.name as petname
    FROM `tags`
    JOIN `users` on users.id = tags.user_id
    Left Outer JOIN `pets` on pets.id = tags.pet_id
    WHERE  users.username = 'myusername' AND  users.email = 'itsme@mydomain.com'
    

    【讨论】:

    • 非常感谢!这正是我所需要的。
    【解决方案2】:

    快速的答案是使用 LEFT JOIN 代替 JOIN

    (我确定这个问题之前在 StackOverflow 上已经问过......)

    【讨论】:

    • 是的,我确信有人问过与我类似的问题……但寻找它是另一回事。感谢您的意见!
    猜你喜欢
    • 2017-10-13
    • 1970-01-01
    • 2019-04-09
    • 1970-01-01
    • 2017-02-05
    • 2015-07-06
    • 2012-08-05
    • 1970-01-01
    相关资源
    最近更新 更多