[英]JOIN 3 Rows in 1 Table to 1 Row in another Table
我需要創建一個記錄集,該記錄集將一個表的3行連接到另一表的1行。
目前我有:
SELECT *
FROM tb_product_sub_cat
LEFT JOIN tb_products ON tb_product_sub_cat.category_id = tb_products.product_subcategory
WHERE tb_product_sub_cat.category_name = %s
我也需要:
tb_product_sub_cat.category_id = tb_products.product_subcategory2 AND
tb_product_sub_cat.category_id = tb_products.product_subcategory3
我需要查找所有/或所有產品類別中都包含“填充物”的所有產品。
SELECT * FROM tb_product_sub_cat
INNER JOIN tb_products
ON tb_product_sub_cat.category_id = tb_products.product_subcategory2
AND tb_product_sub_cat.category_id = tb_products.product_subcategory3
AND tb_product_sub_cat.category_id = tb_products.product_subcategory
WHERE tb_product_sub_cat.category_name = %s
這是我對您的情況的解釋。 讓我知道這是否適合您或您需要詳細說明。
編輯
SELECT * FROM tb_product_sub_cat
LEFT JOIN tb_products
ON tb_product_sub_cat.category_id = tb_products.product_subcategory2
AND tb_product_sub_cat.category_id = tb_products.product_subcategory3
AND tb_product_sub_cat.category_id = tb_products.product_subcategory
WHERE tb_product_sub_cat.category_name = %s
不清楚您想聽什么,但這看起來像是UNION的工作:-
SELECT * FROM tb_product_sub_cat LEFT JOIN tb_products ON tb_product_sub_cat.category_id = tb_products.product_subcategory WHERE tb_product_sub_cat.category_name = %s
UNION
SELECT * FROM tb_product_sub_cat LEFT JOIN tb_products ON tb_product_sub_cat.category_id = tb_products.product_subcategory2 WHERE tb_product_sub_cat.category_name = %s
UNION
SELECT * FROM tb_product_sub_cat LEFT JOIN tb_products ON tb_product_sub_cat.category_id = tb_products.product_subcategory3 WHERE tb_product_sub_cat.category_name = %s
表別名將使您的生活更輕松:
SELECT *
FROM tb_product_sub_cat t
LEFT JOIN tb_products tp ON t.category_id IN (tp.product_subcategory, tp.product_subcategory2, tp.product_subcategory3)
WHERE t.category_name = %s
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.