假设我有两张table。物品,和储存。
它们之间存在项id关系。
我想要的是列出所有在存储中找不到关系的项目
我预感我的陈述可能比这简单得多:
SELECT item.name,storage.stuff
FROM item
LEFT JOIN storage ON storage.item_id=item.id
WHERE storage.stuff IS NULL
GROUP BY item.id
有没有办法将左连接替换为另一个连接,以便返回没有连接的项目?
(实际上,我想保持stuff字段的返回,即使它总是空的,因为我有一个查询函数,它通过ajax为clientside提供很多方法来列出项目,我不想在那里检查该字段是否存在,也不想在获取部分检查)
Table Item
id name
1 a
2 b
3 c
4 d
Table Storage
item_id stuff
1 this
1 that
2 this
期望结果:
item_id item_name stuff
3 c NULL
4 d NULL
2条答案
按热度按时间mwg9r5ms1#
有更多的方法。。
左连接方法
查询
不存在方法
查询
不在方法中
查询
请参见演示https://www.db-fiddle.com/f/phkypgvgjpz5x1lj6siscd/0
kmb7vmvb2#
你不需要使用
Group By
在查询中,当您获取storage
table。你的Group BY
也不是有效的ansi sql,因为在Select
条款。