如何 return 每个 table 中的 ID
How to return IDs that are in each table
如何编写 SQL 脚本,return 我所有表中的所有站点 ID:
图中的表格:
这就是我想要的 return编辑:
...因为所有四个表中只有站点 1 和 2。
数据库:SQL Azure(但我认为这不重要)
您可以使用 join
:
select t1.id
from table1 t1 join
table2 t2
on t1.id = t2.id join
table3 t3
on t1.id = t3.id join
table4 t4
on t1.id = t4.id;
select SiteID
from table1 t1
join table2 t2 on t1.SiteID = t2.SiteID
join table3 t3 on t2.SiteID = t3.SiteID
join table4 t4 on t3.SiteID = t4.SiteID
join table5 t5 on t4.SiteID = t5.SiteID;
我不确定这是否对所有数据库引擎都一样,但在 postgres
中你可以这样做。
select table1.siteid from table1,table2,table3 where (table1.siteid=table2.siteid) and (table1.siteid=table3.siteid);
是的,SQL服务器支持 INTERSECT 运算符。这是最简单的写法:
select 来自表 1 的站点 ID
相交
select 来自表 2 的站点 ID
相交
select 来自表 3 的网站 ID....
这将被转换为适当的连接。
如何编写 SQL 脚本,return 我所有表中的所有站点 ID:
图中的表格:
这就是我想要的 return编辑:
...因为所有四个表中只有站点 1 和 2。
数据库:SQL Azure(但我认为这不重要)
您可以使用 join
:
select t1.id
from table1 t1 join
table2 t2
on t1.id = t2.id join
table3 t3
on t1.id = t3.id join
table4 t4
on t1.id = t4.id;
select SiteID
from table1 t1
join table2 t2 on t1.SiteID = t2.SiteID
join table3 t3 on t2.SiteID = t3.SiteID
join table4 t4 on t3.SiteID = t4.SiteID
join table5 t5 on t4.SiteID = t5.SiteID;
我不确定这是否对所有数据库引擎都一样,但在 postgres
中你可以这样做。
select table1.siteid from table1,table2,table3 where (table1.siteid=table2.siteid) and (table1.siteid=table3.siteid);
是的,SQL服务器支持 INTERSECT 运算符。这是最简单的写法:
select 来自表 1 的站点 ID 相交 select 来自表 2 的站点 ID 相交 select 来自表 3 的网站 ID....
这将被转换为适当的连接。