Sql server SQL select将两个表合并为一列
SQL表权限为: 表格顺序如下: 我希望结果是: 从Authority.AuthorNo中进行选择,其中AuthorNo与Order.OrderNo中的AuthorNo相同,并且至少有一个AuthorNo.prepage为1Sql server SQL select将两个表合并为一列,sql-server,tsql,Sql Server,Tsql,SQL表权限为: 表格顺序如下: 我希望结果是: 从Authority.AuthorNo中进行选择,其中AuthorNo与Order.OrderNo中的AuthorNo相同,并且至少有一个AuthorNo.prepage为1 如何选择此选项?我猜您只是想在结果中看到AuthorNo?试试这个 Select distinct a.AuthorNo From Authority a join Order b on a.AuthorNo=b.AuthorNo where a.Prepay=1 如
如何选择此选项?我猜您只是想在结果中看到AuthorNo?试试这个
Select distinct a.AuthorNo
From Authority a
join Order b on a.AuthorNo=b.AuthorNo
where a.Prepay=1
如果您需要查找拥有订单的作者,这些订单也是由具有预付费的作者订购的 然后你可以使用一个EXISTS
SELECT auth.AuthorNo
FROM Authority auth
JOIN [Order] ord ON ord.AuthorNo = auth.AuthorNo
WHERE EXISTS
(
SELECT 1
FROM [Order] ord_pp
JOIN Authority auth_pp
ON auth_pp.AuthorNo = ord_pp.AuthorNo
AND auth_pp.Prepay = 1
WHERE ord_pp.OrderNo = ord.OrderNo
)
GROUP BY auth.AuthorNo;
测验
结果:
你说authorNo=orderNo-怎么可能?您的订单号有两位数,而您的作者号有一位数。你能澄清一下吗?AithorNo在订单表中由OrderNo表示。AuthorNo与订单表中的OrderNo相同,也有一个是AuthorNo prepared 1。你能详细说明它的意思吗?他们都不会回答;注意:这两个表都在OrderNo列中。@MahdiYousef已更新,它适用于答案中包含的测试。已解决,非常感谢
AuthorNo
--------
1
2
4
5
Select distinct a.AuthorNo
From Authority a
join Order b on a.AuthorNo=b.AuthorNo
where a.Prepay=1
SELECT auth.AuthorNo
FROM Authority auth
JOIN [Order] ord ON ord.AuthorNo = auth.AuthorNo
WHERE EXISTS
(
SELECT 1
FROM [Order] ord_pp
JOIN Authority auth_pp
ON auth_pp.AuthorNo = ord_pp.AuthorNo
AND auth_pp.Prepay = 1
WHERE ord_pp.OrderNo = ord.OrderNo
)
GROUP BY auth.AuthorNo;
AuthorNo
--------
1
2
4
5