内部加入并选择该表上的其他列
这是我的查询的一部分,我在此查询之前有一个联合。我想在条件下选择table1中的更多列。内部加入并选择该表上的其他列
SELECT c.ID, c.Name, c.Position, c.Email, c.ContactNumber
FROM table1 c
INNER JOIN table2 a
ON c.ID = (SELECT foreignID FROM table2 WHERE a.Name = 'someName')
WHERE Dept = 'Something' --this will return nothing since in the inner join
--the condition returns a single column and it doesn't
--satisfy the WHERE Clause
我要选择满足ID(工作)的人,包括东西的部门人。有解决这个问题的另一种方法,或者我真的需要使用UNION来做到这一点。这会影响应用程序,特别是移动应用程序的性能吗?
如果我的理解您的要求正确,然后使用LEFT JOIN
SELECT c.ID, c.Name, c.Position, c.Email, c.ContactNumber
FROM table1 c
LEFT JOIN table2 a ON c.ID = a.foreignID AND a.Name = 'someName'
WHERE Dept = 'Something'
uhm ,,这将返回满足WHERE子句的列,但不返回JOIN部分中的人员。但是,谢谢,只是有点扭曲为此:) –
是'c.ID = a.foreignID'连接是否正确? –
它是正确的,但我必须将其更改为(SELECT foreignID FROM table2 WHERE a.Name ='someName'),并在满足c.ID =(SELECT foreignID FROM table2 WHERE a.Name ='someName' ) –
部门是该表中的列?你不能只使用'ON c.ID = a.foreignID和Dept = Something'? –
Dept来自表1 –