我有这个SQL查询:
select *
from message
where not exists (select message.*
from message
left join message_reply on message.id_message = message_reply.id_message)
我在Oracle SQL Developer工作。
我想要的是得到数据库中没有答案的每一条消息。
系统是这样工作的:message是接收到的消息,message_reply是我们对此消息的回答。所以有1:n连接1是消息,n是应答。
我的查询返回一个空表。
是的,在我们的系统中有很多没有答案的消息要显示。
像往常一样,我在网上尝试了很多教程,比如:
https://www.oracletutorial.com/oracle-basics/oracle-not-exists/
How to find rows in one table that have no corresponding row in another table
https://www.tutorialspoint.com/sql_certificate/get_data_from_multiple_tables.htm
但对我来说也一样。
感谢您提供的任何有用的信息。
1条答案
按热度按时间n53p2ov01#
你的存在逻辑是错的。您打算使用此版本:
简单地说,上面的代码查找不存在任何匹配消息回复的所有消息。你把左边的反连接和存在搞混了。反连接版本将是: