簡體   English   中英

使用中間表從2個Mysql表中選擇記錄

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

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