簡體   English   中英

將1個表中的3行聯接到另一個表中的1行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM