三個表,列如下:加入基於在多個表中的條件
A: A_id, B_id, C_id, flag, ...
B: B_id, date, ...
C: C_id, date
如果A.flag爲NULL,則我需要從A中的所有行加入了與B關於B_ID具有B.date在過去。
如果A.flag不是NULL,那麼我需要A的所有行與B_id上的B在過去具有C.date,C在C_id上連接。
嘗試:
SELECT *
FROM A, B, C
WHERE A.A_id = B.B_id
AND ((A.flag IS NULL AND (NOW() > B.date) OR
(A.flag IS NOT NULL AND (NOW() > C.date) AND C.C_id = A.C_id))
但我需要在A.flag is NULL
行一些條件來阻止它與C.每行這是我不能工作了加盟。
還是有更簡單的方法來做到這一點?
這是相當整潔,但我需要我的結果集包含從B列。 – jontyc