我有兩個表通知和確認。確認有一個包含通知表主鍵的字段。基本上通知會有許多確認。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