如何 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....

这将被转换为适当的连接。