[英]SQL Join 3 Tables and concatenate values
我有 3 個表與一個:m 關系
語言:
產品:
關系表:
Lang_Prod:
現在我想獲得所有具有相應語言名稱的產品:
我試過了:
SELECT product.*, languages_products.language_id,
GROUP_CONCAT(languages_products.language_id) as languages
FROM product
INNER JOIN languages_products ON id = languages_products.product_id
GROUP BY product.id;
結果是:
我想要一個帶有語言名稱的字符串,而不是帶有語言 ID 的字符串
我怎樣才能存檔?
您需要加入語言表
SELECT product.id,product.name,product.productgroup,
GROUP_CONCAT(l.name) as languages
FROM product
INNER JOIN languages_products ON id = languages_products.product_id
INNER JOIN languages l ON languages_products.language_id=l.id
GROUP BY product.id,product.name,product.productgroup
您需要添加另一個與languages
表的連接,並使用其中的name
列。 不過,我會將其分組在內部查詢中:
SELECT p.*, languages
FROM product p
JOIN (SELECT product_id, GROUP_CONCAT(l.name) as languages
FROM languages_products lp
JOIN languages l ON lp.language_id = l.id
GROUP BY product_id) cl ON cl.product_id = p.id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.