請考慮以下示例。 alt text http://i26.tinypic.com/1zo7mub.jpg使用SQL查詢幫助
我不得不選擇從表1存在於表2不table1中存在,但在表2的存在以及有IsActive = 1和狀態不爲空的所有記錄也+的表2中的所有記錄。
我最初嘗試與連接,但如何做後面的部分,我必須選擇表1中不存在的記錄?我必須在一個單獨的查詢中使用SQL視圖來完成它。
編輯 傢伙,我需要的結果結合起來像2代表的聯合,使櫃面行不存在於表1,但目前在表2中,屬於表1的列是空白。
請考慮以下示例。 alt text http://i26.tinypic.com/1zo7mub.jpg使用SQL查詢幫助
我不得不選擇從表1存在於表2不table1中存在,但在表2的存在以及有IsActive = 1和狀態不爲空的所有記錄也+的表2中的所有記錄。
我最初嘗試與連接,但如何做後面的部分,我必須選擇表1中不存在的記錄?我必須在一個單獨的查詢中使用SQL視圖來完成它。
編輯 傢伙,我需要的結果結合起來像2代表的聯合,使櫃面行不存在於表1,但目前在表2中,屬於表1的列是空白。
下面是一個例子查詢:
select *
from Table2 t2
left join
Table1 t1
on t1.id = t2.id
where t1.id is not null
or (isActive = 1 and status is not null)
的第一行where子句需要照顧「的所有記錄,從存在於表2表1」。第二行是「不存在於table1中,但存在於table2中,且IsActive = 1且狀態不爲空」。
是這個嗎?不知道我是否正確地做了你想做的事情。
SELECT
*
FROM
Table1 t1
JOIN
Table2 t2 ON (t1.ID = t2.ID OR (t1.ID IS NULL AND t2.isActive = 1 AND t2.Status IS NOT NULL))
謝謝Andomar,你能看看我的查詢嗎?雖然我嘗試了類似的方式,但它不工作。此外,你爲什麼使用OR而不是AND? table1也通過table2連接起來。任何原因 ? – 2010-07-15 09:52:56
@Popo:你必須澄清「不工作」。 OR將顯示滿足至少一個條件的行;與和,他們必須符合所有條件。我從Table2開始,因爲即使Table1中沒有匹配的行,您也想顯示Table2中的行。 – Andomar 2010-07-15 10:19:49
嗨,與我以前的查詢我從表2中只有1個表和空列的列。我也無法讓您的查詢工作 – 2010-07-15 10:36:09