我正在努力解决一个问题。我只是无法绕过它。
我有4个表:库存,样式,尺寸,style_sizes
库存包含user_id,样式,大小等列。 样式包含列:style_id,样式(样式的名称)等。 大小包含列:size_id,size等(sm,md,lg等) style_sizes包含列:style_size_id,style_id,size_id(这是列出可用于所选样式的大小)
我需要的是列出user_id = x和style = y(而不是style_id)的所有库存,其中用户具有大小并按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
我很接近,但我不知道从哪里开始。谢谢你提前。
答案 0 :(得分:0)
您需要在联接中加入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 AND i.size_id = ss.size_id
WHERE i.user_id = :user_id AND i.style = :style