鍍金池/ 問答/數(shù)據(jù)庫/ 一段邏輯思維比較亂的3表聯(lián)合查詢,一個下午了做不出了!

一段邏輯思維比較亂的3表聯(lián)合查詢,一個下午了做不出了!

圖片描述

要求如圖所示了,很苦惱自己想了一下午了也寫不出來

如果看不懂圖例的要求,我再補充下:表1是一級目錄 表2是二級目錄 然后商品全部都在表2里面對應(yīng),表2的分類全部都在表1里面。 我想通過 查詢表1里面的一條字段就對飲將表一所有的耳機目錄下 所有的商品記錄都查詢出來。

真的很費邏輯,求大神指點迷津! ?

回答
編輯回答
有點壞

SELECT
p.*
FROM
product
LEFT JOIN table2 t2

ON t2.cm_class = p.class_id 

LEFT JOIN table1 t1

ON t1.meal_id = t2.class_num 

WHERE t1.meal_id = 1

看來跟一樓的答案是一致的,有條件的話,不一定用內(nèi)連接。

2017年5月25日 22:05
編輯回答
若相惜

如果你要查到所有早餐分類里面的所有商品記錄就聯(lián)合三張表像@rebiekong的sql就行,ps:如果關(guān)聯(lián)關(guān)系可以一一對應(yīng),不需要left join,使用join最好
如果你只需要查出早餐分類1和早餐分類2的商品記錄,那你只需要t2和t3聯(lián)查就可以了
聯(lián)表查詢基本語法

select t3.* from t3 join t2 on t2.class_id=t3.cm_class 
where t2.class_title in ('早餐分類1','早餐分類2');
2018年1月13日 20:01
編輯回答
寫榮
    SELECT 
    t3.*
    FROM t3
     LEFT JOIN t2 ON t3.cm_class=t2.class_id
     LEFT JOIN t1 ON t2.class_num=t1.meal_id
    WHERE t1.meal_id=1
2017年8月1日 15:16