[英]MySQL joining 2 columns with the same table
我有 3 張桌子:
我需要獲取 cat slug 和 stats 表的單元 slug,與 unit_cat 表和 unit_list 連接。 問題是我同時加入了unit_stats.id_unit_1
和unit_stats.id_unit_2
這是結構的sqlfiddle和我當前的查詢(沒有得到想要的結果):
SELECT
unit_stats.hits AS hits,
unit_cat.slug AS cat,
unit_list.slug AS slug_1,
unit_list.slug AS slug_2
FROM unit_stats
JOIN unit_cat ON unit_cat.id_cat = unit_stats.id_cat
JOIN unit_list ON unit_list.id_unit = unit_stats.id_unit_1 AND unit_list.id_unit = unit_stats.id_unit_2
ORDER BY hits DESC
所需的結果應采用以下格式:
temperature, celsius, fahrenheit
謝謝你的幫助。
您的查詢不起作用,因為您在unit_list
的JOIN
條件中有沖突的條件。 您實際上需要JOIN
unit_list
兩次,每個單元一次,以獲得不同的 slug。 請注意,您還需要在JOIN
條件中包含id_cat
,這樣您就不會從其他類別中獲取單位。
SELECT
us.hits AS hits,
uc.slug AS cat,
ul1.slug AS slug_1,
ul2.slug AS slug_2
FROM unit_stats us
JOIN unit_cat uc ON uc.id_cat = us.id_cat
JOIN unit_list ul1 ON ul1.id_unit = us.id_unit_1 AND ul1.id_cat = uc.id_cat
JOIN unit_list ul2 ON ul2.id_unit = us.id_unit_2 AND ul2.id_cat = uc.id_cat
ORDER BY hits DESC
Output(用於您的演示數據)
hits cat slug_1 slug_2
16 weight kilogram gram
6 area square-meter square-kilometer
4 temperature celsius fahrenheit
2 distance meter exameter
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.