gpt4 book ai didi

SQL select 语句结合不同的表

转载 作者:行者123 更新时间:2023-12-01 07:54:15 26 4
gpt4 key购买 nike

说我有三个表:TableA , TableB , 和 TableC .每个表都有一列:ColA .
TableA是我的主 table 和 TableA.ColA有一个值(value)。

我想查一下 TableBTableC在他们的 ColA 中也有一个值与我的 TableA.ColA 相对应.

所以我的说法是:

select count(*) 
from TableA, TableB, TableC
where ( TableA.ColA = TableB.ColA AND TableA.ColA = "ABC")
OR ( TableA.ColA = TableC.ColA AND TableA.ColA = "ABC" )

但这不起作用。

如果我的 TableB.ColA没有 ColA值和 TableC.ColA有值,返回的结果还是 0 .我应该得到 1 的计数背部。

我的选择语句有什么问题?

我的表A数据:
ColA
-----
ABC

我的 TableB 数据:
ColA
----
NULL

我的 TableC 数据:
ColA
----
ABC

因为 TableC.ColATableA.ColA具有相同的值,它应该返回一个计数 1 .但它并没有这样做。我的数据库是 SAP ASE

谢谢

最佳答案

你在做什么INNER JOIN你需要 OUTER JOINEXISTS .您使用的 RDBMS 的语法会有所不同。

尝试这个:

SELECT    COUNT(*)
FROM
TableA A
WHERE
A.ColA = "Value"
AND (
EXISTS(
SELECT * FROM TableB
WHERE
ColA = "Value"
)
OR EXISTS(
SELECT * FROM TableC
WHERE
ColA = "Value"
)
)

关于SQL select 语句结合不同的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34378046/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com