Mysql
如何從同一個表中選擇多個id
這是我的問題的簡化版本。我有這些表:
主表
id - 姓名 - 姓氏 - 父親姓名 - 母親姓名
名稱
身份證 - 姓名
姓氏
身份證 - 姓氏
我想查詢主表,但我想從其他表中獲取姓名、父親姓名和母親姓名的 ID。我想要類似的東西;
SELECT 'id from names table that matches record name' , 'id from surnames table that matches record surname' , 'id from names table that matches record fathers name' , 'id from names table that matches record mothers name' FROM master_table
我的問題是我不知道如何多次加入同一張桌子。
您可以通過在 FROM 語句中為表加上別名來“多次加入同一個表”,例如 SELECT xyz FROM names AS n1(其中 n1 是表的別名
$$ names $$)。您可以通過為同一個表使用不同的別名來多次引用同一個表,它將被視為“不同”的數據集。 然後,您將需要在各種別名之間加入以獲得您想要的條件,例如“匹配記錄姓氏的姓氏”。
正如上面的評論者所說,結構不是很清楚,但你最終會得到類似的東西:
SELECT name, s1.surname, s2.surname from names AS n1 JOIN surnames AS s1 ON n1.mothersname = s1.surname JOIN surnames AS s2 ON n1.fathersname = s2.surname
我確定連接不完全是這樣,因為您似乎有姓名和姓氏的“中間”表(這本身可能是一個設計問題),但上面應該說明如何在一個中多次使用同一個表詢問。