我有两个表通知和确认。确认有一个包含通知表主键的字段。基本上通知会有许多确认。SQL查询从两个表中选择条件如果条件
Tables: Notification Acknowledgment
fields: id, notifier id, parent_id, status
现在我不得不选择从通知,使得行:
- 没有确认WHERE Acknowledment.parent_id = Notification.id(基本上没有确认该特定通知) //或
- 如果存在确认通知,则选择通知,如果任何具有parent_id = Notification.id的确认具有确认。状态= someValue
伪SQL代码:
"SELECT * FROM Notification (WHERE id is not present in Acknowledgment.parent_id) OR
(WHERE id is present in Acknowledgment.parent_id AND [email protected]"
我可以分解成更简单的查询,实现这一点,但我很想知道一个单一查询得到这个工作..
@Akhil的答案在你的代码中有a.id IS NULL而不是a.status。因为无论如何都不会成为这样的一排呢,可以选择去吗? – nawfal 2011-12-20 01:18:05
@nawfal你是对的 - 绝对没有区别。 – dasblinkenlight 2011-12-20 01:19:08
感谢您指出。我已经更新了我的答案。 – Akhil 2011-12-20 01:20:27