Table1: ID,Name,some more columns
Table2: ID
Table3: Name
我想从table1获取输出,其ID在Table2.IDs&其名称出现在Table3.Name。
中换句话说,选择所有3个表中都存在的数据。
例如:
表1:
1 John
2 Will
3 Michael
表2:
1
表3:
Will
输出应为
1 John
2 Will
答案 0 :(得分:2)
您需要使用JOIN。
您的说明和示例输出不匹配,因此我将为您提供一个示例。
根据您的描述,它应为2 INNER JOIN:
select table1.id, table1.name
from table1
inner join table2 on table2.id = table1.id
inner join table3 on table3.name = table1.name
根据你的输出,它应该是2 OUTER JOINS,WHERE子句指定满足2个连接中的至少一个:
select table1.id, table1.name
from table1
left outer join table2 on table2.id = table1.id
left outer join table3 on table3.name = table1.name
where table2.id is not null or table3.name is not null
答案 1 :(得分:0)
根据您的预期结果,看起来您希望Table1中的行与Table2或Table3匹配,因此您需要使用LEFT JOIN。
select t1.ID, t1.Name
from Table1 t1
left join Table2 t2
on t1.ID = t2.ID
left join table3 t3
on t1.Name = t3.Name
where t2.ID is not null
or t3.Name is not null