我只知道關於SQL的裸機,所以請把我當成一個完整的noob!SQL - 連接來自同一個表的行
我有一個表有很多行,但其中一些可以通過ID配對,我想要合併這些行的返回數組。
post_id # meta_name # meta_value #
======================================
1 # bar # 44 #
1 # foo # on #
2 # bar # 1 #
2 # foo # on #
3 # bar # 1 #
3 # foo # off #
的縮小版本,想象一下我上面的表和我的目標返回2個結果
1 # foo # bar # 44 # on
2 # foo # bar # 1 # on
基於這樣的ID是相關的,即C2具有的「價值在」
我的嘗試是從一些閱讀下面的,但沒有得到任何地方
SELECT
t1.post_id, t2.post_id, t1.meta_name, t2.meta_name, t1.meta_value, t2.meta_value
FROM
`ecom_page_meta` t1
JOIN
`ecom_page_meta` t2
ON
t1.post_id = t2.post_id
WHERE
t1.meta_name = 'featured-products'
AND
t1.meta_value = 'on'
任何幫助將長久地感謝
**編輯**
我認爲Id剛剛發佈其很好地工作感謝以下答案下面的語法:
SELECT L.post_id, L.meta_name, R.meta_name, L.meta_value, R.meta_value
FROM `ecom_page_meta` L
INNER JOIN ecom_page_meta R
ON L.post_id = R.post_id
AND L.meta_name = 'featured-products-order'
AND R.meta_value = 'on'
WHERE R.meta_name = 'featured-products'
ORDER BY L.meta_value
DESC
再次感謝。
它看起來像你試圖將結果從行轉移到基於id的列。你確定你想把c1/c2的值作爲列嗎?每個ID總會有2行嗎?他們中只有一個會上? – TheCodeKing
您的表格描述包含C1和C2,SQL代碼,meta_name和meta_value。請更新表格以使用代碼中使用的實際名稱。另外,'t1.meta_name ='featured-products'是一個問題,因爲示例數據根本不包含該字符串。一個完整的猜測是,你希望最後一行是't2.meta_value ='on''。 –
抱歉,我認爲這很明顯,我會更新。並且不,它們不能與真正的行相同,因爲它們與不同的模塊設置和結果有關 –