2012-10-31 131 views
0

我使用SOME_ID列的SOME_TABLE表。 我也有表ANOMHER_TABLE與列SOME_TABLE_SOME_ID(FOREIGN KEY),類型,內容從2個表格和2個記錄查看另一個

有一個或2個記錄在ANOTHER_TABLE SOME_TABLE中的一條記錄。

我想有如下看法:

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' 

此查詢只返回結果SOME_TABLE如果存在ANOTHER_TABLE都記錄(含TYPE =」 A'和TYPE ='B')。

如何獲取相應的SOME_TABLE記錄時只有1條記錄存在ANOTHER_TABLE?

我想在CONTENT_TYPE_A或CONTENT_TYPE_B有空值時有現在的記錄。

回答

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'