在 SQL Server 中加入 3 个表

用户6018554

我有三个表,分别是:user, special_order, corp_order

我想要一个结果,它可以在两个订单表中显示用户下的所有订单。

我的 SQL 语句是:

SELECT 
    u.user_id,
    c.user_id,
    s.user_id
FROM
    corp_user u
JOIN 
    special_order s ON s.user_id = u.user_id
JOIN 
    corp_orders c ON c.user_id = u.user_id;

这是返回不必要的数据。

艾伦

您要的是所有订单,无论是特殊订单还是公司订单。确定您想要从每个 corp_user 表中获取哪些列,并为每个订单表中的订单匹配列,然后执行两个由UNION ALL. (您想要UNION ALL,不是UNION因为否则如果所有字段中都有完全匹配,重复项将被消除。

举例说明:

SELECT
    u.user_id,
    s.order_id
FROM
    corp_user u 
    INNER JOIN special_order s on u.user_id = s.user_id
UNION ALL
SELECT
    u.user_id,
    c.order_id
FROM
    corp_user u 
    INNER JOIN corp_order c on u.user_id = c.user_id

注意:字段必须完全匹配 - 不一定是名称,而是位置。将使用来自第一个查询的名称。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章