繁体   English   中英

MySQL查询-连接,子查询(如果存在)

[英]Mysql Query - join, subquery, if exists

我正在努力查询。 我只是不能把头缠住它。

我有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_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

我很近,但是我不确定从这里去哪里。 提前致谢。

您需要在连接中包括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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM