如何在SQL Server 2012中进行条件右连接?

MD *_*AIN 0 sql join sql-server-2012

假设我有两张这样的桌子

在此输入图像描述

现在我想要做正确的加入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
Run Code Online (Sandbox Code Playgroud)

如果user_id=11我下面没有条目,我仍然希望从中获取所有行Menu_Table!可能吗?我正在使用SQL Server 2012.

Duk*_*ing 5

如果你想从中获取所有行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
Run Code Online (Sandbox Code Playgroud)