0

我有带有 SOME_ID 列的表 SOME_TABLE。我也有表 ANOTHER_TABLE 列 SOME_TABLE_SOME_ID (FOREIGN KEY), TYPE, CONTENT

SOME_TABLE 中的一条记录在 ANOTHER_TABLE 中有 1 或 2 条记录。

我想有如下观点:

SOME_ID, CONTENT_TYPE_A, CONTENT_TYPE_B

我有sql语句:

SELECT
ST.SOME_ID,
TYPE_A.CONTENT CONTENT_TYPE_A, 
TYPE_B.CONTENT CONTENT_TYPE_B
FROM SOME_TABLE ST
LEFT OUTER JOIN ANOTHER_TABLE TYPE_A
ON ST.SOME_ID=TYPE_A.SOME_TABLE_SOME_ID 
LEFT OUTER JOIN ANOTHER_TABLE TYPE_B
ON ST.SOME_ID=TYPE_B.SOME_TABLE_SOME_ID 
WHERE
TYPE_A.TYPE = 'A'
AND
TYPE_B.TYPE = 'B'

如果 ANOTHER_TABLE 中的两条记录都存在(TYPE='A' 和 TYPE='B'),则此查询仅返回 SOME_TABLE 的结果。

当对应的 SOME_TABLE 记录在 ANOTHER_TABLE 中仅存在 1 条记录时如何查看?

现在有记录时,我想在 CONTENT_TYPE_A 或 CONTENT_TYPE_B 中有空值。

4

1 回答 1

2

如何使用OR而不是AND

SELECT
ST.SOME_ID,
TYPE_A.CONTENT CONTENT_TYPE_A, 
TYPE_B.CONTENT CONTENT_TYPE_B
FROM SOME_TABLE ST
LEFT OUTER JOIN ANOTHER_TABLE TYPE_A
ON ST.SOME_ID=TYPE_A.SOME_TABLE_SOME_ID 
LEFT OUTER JOIN ANOTHER_TABLE TYPE_B
ON ST.SOME_ID=TYPE_B.SOME_TABLE_SOME_ID 
WHERE
TYPE_A.TYPE = 'A'
OR
TYPE_B.TYPE = 'B'
于 2012-10-31T16:13:23.780 回答