說我有2個表,稱爲父母和孩子。父母可以有零至很多孩子,而孩子可以有一對多父母。我如何找到作爲兩個特定孩子的父母的所有父元素。如何構建SQL查詢以查找兩個特定其他對象的父對象?
例如,說我有父母[P_A,P_B,P_C,P_D],和兒童:C_A,C_B] 他們的結構如下:
- P_A具有C_A作爲一個孩子
- P_B已C_B作爲一個孩子
- P_C既有C_A及C_B兒童
- P_D一直沒有孩子
我如何公式查詢選擇p_c?
如果他們有一個p [id,name]和c具有[id,name]並且[parent_id,child_id]有join_table的結構。 (爲了讓事情變得更容易,我也給了他們連續的id來代替這個例子)。
我試圖解決它想出了下面的SQL
SELECT p.*
FROM parent AS p
JOIN join_table AS j ON p.id = j.parent_id
JOIN children AS c ON j.child_id = c.id
WHERE c = 1
OR c = 2
但顯然這個選擇P_A和P_B以及P_C。我一直在尋找UNION運營商,但似乎無法得到它的工作。
期待您的答案,謝謝閱讀。 邁克
編輯:提到我使用了您正在尋找在兩個特定的子記錄存在父母的例子
在你的榜樣C_A具有ID = 1,和C_B ID = 2? –
@GrzegorzMotyl對不起,是我使用的約定,只是意識到我沒有指定它們。 –