Mysql

如何從同一個表中選擇多個id

  • September 11, 2015

這是我的問題的簡化版本。我有這些表:

主表

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

我確定連接不完全是這樣,因為您似乎有姓名和姓氏的“中間”表(這本身可能是一個設計問題),但上面應該說明如何在一個中多次使用同一個表詢問。

引用自:https://dba.stackexchange.com/questions/114808