[英]Selecting records from 2 Mysql tables using intermediary table
我有4個mysql表,如下所示:
products:
----------------------------------------------------
product_id product_name price discount
----------------------------------------------------
1 product 1 10.00 1.00
2 product 2 20.00 2.00
3 product 3 25.00 1.00
----------------------------------------------------
subcategory
----------------------------------------------------
subcategory_id subcategory_name status
----------------------------------------------------
1 subcat 1 Enabled
2 subcat 2 Disabled
3 subcat 3 Enabled
------------------------------------------------------
temp_products
------------------------------------------------------
id productid catid
------------------------------------------------------
1 1 1
2 1 2
3 2 1
------------------------------------------------------
product_images
------------------------------------------------------
product_id images
------------------------------------------------------
1 image1.jpg
1 image2.jpg
2 image2-1.jpg
--------------------------------------------------------
temp_products.catid和subcategory.subcategory_id
和
temp_products.productid和products.product_id
和
products.product_id和product_images.product_id
有關系..
多個產品可以歸為一個子類別。
我希望選擇一個帶有所有包含1個圖像(第一個圖像)的產品的子類別,並且WHERE subcategory.status為“已啟用” ...? (限制1)
我也該如何在Random中選擇它? (蘭德)
我需要得到如下結果:
----------------------------------------------------------------------------------
subcategory_id subcategory_name product_id product_name, price, discount, images
-----------------------------------------------------------------------------------
1 subcat 1 1 product 1 10.00 1.00 image1.jpg
1 subcat 1 2 product 2 20.00 2.00 image2- 1.jpg
希望有人能幫助我...提前感謝。
此未經測試的查詢應為您提供結果:
Select * from subcategory join temp_products on temp_products.catid = subcategory.subcategory_id join products on temp_products.productid = products.product_id where subcategory.status='Enabled'
布茲(Buzt)我不理解您問題的“我也如何在Random中選擇它……???(RAND)”這一部分的意思。
SELECT products.*, (SELECT subcategory.id FROM subcategory WHERE `status` = enabled ORDER BY RAND() LIMIT 1) as sub
FROM products
INNER JOIN temp_products ON products.products_id = temp_products.productid
INNER JOIN subcategory ON temp_products.catid = subcategory = subcategory_id
WHERE temp_products.catid = sub
嘗試這個
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.