我通常在谷歌我的問題,因爲他們不是唯一對我來說。但是,這次我找不到答案(可能沒有使用正確的關鍵字)。mysql從另一個表中選擇一行的多個列
問題描述:
我有兩個表。
第一臺 - defenition_list擁有唯一的ID和姓名
ID | NAME
-----------
1 | BMW
2 | AUDI
3 | VW
4 | MAZDA
二表 - used_id持有ID從第一臺
ID | def_uid1 | def_uid2 | def_uid3
------------------------------------
1 | 2 | 3 | 2
2 | 4 | 2 | 1
所以平時如果我需要回到只有一個列的值,我會做出如下選擇:
SELECT d.NAME, u.def_uid1 FROM defenition_list d, used_id u WHERE d.ID=u.def_uid1
但如何編寫查詢以同時獲取def_uid2和def_uid3的名稱?所以,結果會是什麼樣子:
ID | def_uid1 | def_uid2 | def_uid3 |
--------------------------------------
1 | AUDI | VW | AUDI |
2 | MAZDA | AUDI | BMW |
這取決於你想要什麼,你想加入這兩個表,基於'defenition_list.ID'和'used_id'中的任何/所有列的等同性嗎? –
查看正常化。 – Strawberry
http://sqlfiddle.com/#!9/a6973/2 - 我假設你想列入數據庫的用戶的前3名汽車品牌。 U可以額外的用戶表正確設置user_pref表primary_key(user_id,id_brand)。希望它有幫助。 – Falt4rm