我正在努力尋找一個查詢。我無法把頭圍住它。Mysql查詢 - 連接,子查詢,如果存在
我有4個表:庫存,款式,尺寸,style_sizes
清單包含列user_id說明,樣式,尺寸等 風格包含列:style_id,風格(樣式的名稱)等 尺寸包含列:size_id,大小等(SM,MD,LG等) style_sizes包含列:style_size_id,style_id,size_id(這是列出可供選擇的款式大小)
我需要的是列出所有庫存user_id = x和style = y(不是style_id),其中用戶具有size並按size_id排序。
目前,即使用戶沒有任何尺寸,它也會顯示可用於該樣式的所有尺寸。
這裏查詢到目前爲止...
SELECT i.*, st.*, ss.*
FROM inventory as i
JOIN style as st
ON i.style = st.style
JOIN style_sizes as ss
ON st.style_id = ss.style_id
WHERE i.user_id = $user_id AND i.style = :style
我很接近,但我不知道在哪裏可以從這裏走。先謝謝了。
您通常應該使用ID作爲外鍵,而不是名稱。 – Barmar
是的。但變量被調用的方式我需要使用style而不是style_id。 – foxtangocharlie
我在談論架構。您仍然可以在'WHERE'子句中使用'style',但連接應該使用ID。 – Barmar