作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
stackoverflow 上发布了很多与我的问题几乎相同的问题,但我没有找到可行的解决方案。我有一个表消息,条目是:
id | Message | Status
1 | Hello | 1
2 | Hiiii | 0
4 | Works | 1
我有另一个表,其中提供了 id 1,2,3,我想从 message 表中查找所有这些条目的状态。我想要的是,如果 message 表中不存在 id,那么如果我使用 IN 子句查找所有状态,它应该为该 id 返回 null。我想要以下结果:
id | Status
1 | 1
2 | 0
3 | null
我一直在使用 IN 子句,但没有得到工作输出。然后我在 stackoverflow 上得到了一个解决方案并尝试了这个查询
SELECT `id`,`status` FROM ( SELECT 1 AS ID UNION ALL SELECT 2 AS ID UNION ALL SELECT 3) ids LEFT OUTER JOIN message ON ids.ID = message.id
但是这个查询没有给出预期的结果。任何帮助将不胜感激。
最佳答案
我不明白您的查询将如何工作。 select
中的 id
列应该不明确(除非您的数据库区分大小写)。试试这个:
SELECT ids.ID, m.status
FROM ( SELECT 1 AS ID UNION ALL SELECT 2 AS ID UNION ALL SELECT 3
) ids LEFT OUTER JOIN
message m
ON ids.ID = m.id;
关于MYSQL IN 子句问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22051956/
我是一名优秀的程序员,十分优秀!