【问题标题】:How to do conditional right join in SQL Server 2012?如何在 SQL Server 2012 中进行条件右连接?
【发布时间】:2013-10-03 07:17:22
【问题描述】:

假设我有两个这样的表

现在我想正确加入Menu_TableMenu_access_Table

我想从Menu_Table 获取所有行。

SELECT
*
FROM
    Menu_Table
RIGHT JOIN 
    Menu_Access_Table ON Menu_Table.menu_id = Menu_Access_Table.menu_id
WHERE
    Menu_Access_Table.user_id=11

如果user_id=11 下没有条目我仍然想从Menu_Table 获取所有行!是否可以?我正在使用 SQL Server 2012。

【问题讨论】:

    标签: sql join sql-server-2012


    【解决方案1】:

    如果您想从Menu_Table 获取所有行,您需要使用LEFT JOIN,而不是RIGHT JOIN

    你可以把附加条件放在ON:

    SELECT *
    FROM Menu_Table
    LEFT JOIN Menu_Access_Table ON Menu_Table.menu_id = Menu_Access_Table.menu_id
        AND Menu_Access_Table.user_id = 11
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-19
      • 1970-01-01
      • 1970-01-01
      • 2012-09-17
      • 2014-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多