比方說,我想找出所有父母和我父母在同一班級的孩子。我可以寫這樣的查詢:SQL:查找父母都是我的所有孩子
SELECT child.* FROM child
JOIN parent ON child.ParentID = parent.ID
WHERE parent.class IN (SELECT parent1.class
FROM parent1 JOIN child1
ON parent1.id = child1.parentID
WHERE child1.ID = MyID)
不知怎的,這感覺就像我做錯了,我在寫(約)相同的連接兩次,但我不能想出一個辦法來提高它(我可以找出嵌套子查詢的其他方法,但沒有一個看起來更整潔)。
有沒有一個乾淨的方式做到這一點,我失蹤了?或者我做對了嗎?
編輯:正如GolzeTrol在他對這個問題的(完整)回答中所指出的,兒童被限制爲只有一個父母是很奇怪的。他是完全正確的,我並不打算在實際的家庭中運行這個查詢,而是在其他一些表格上,每個孩子實際上只與一個父母關聯。
謝謝,那正是我想要的。只是沒有想到自己加入一張桌子。關於結構,你是對的 - 我實際上並沒有爲兒童和父母這樣做,但對於我的數據庫中的一些兒童只有一位家長的表 - 我會在問題中留下一個註釋。 –