詳情:http://screencast.com/t/fTRzyqsoMYSQL兩個表加入並得到結果基礎上,並僅通過相同的字段值
基本上有2個MySQL表(聯繫人和交易),並需要獲得的兩個條件
的基礎上的ContactID- 獲取的所有聯繫人(使用ContactID),那裏是所有
- 沒有成交僅獲得那些聯繫人誰都有一個或多個交易記錄,但所有的人都與取消狀態。
幫助!?
詳情:http://screencast.com/t/fTRzyqsoMYSQL兩個表加入並得到結果基礎上,並僅通過相同的字段值
基本上有2個MySQL表(聯繫人和交易),並需要獲得的兩個條件
的基礎上的ContactID幫助!?
你可以用一個簡單的LEFT連接實際完成這個...並查找NULL(未找到)。通過進行左連接,它會從左表中獲取所有記錄,而不管右側是否匹配。因此,如果我們將聯接條件設置爲您的交易表,則取消匹配=「否」,並且我們找到匹配項,則忽略結果集中的匹配項。如果交易中沒有記錄,或者它們全部設置爲取消=「是」,則它們被排除在聯接條件之外,因此將被視爲「未找到」
select
c.ContactID
from
Contacts c
LEFT JOIN Transactions t
on c.ContactID = t.ContactID
AND t.Cancelled = "yes"
where
t.contactID is null
好吧,這個工程,除了我必須改變t.Cancelled <>'是'才能得到正確的結果。非常感謝! – Ahmed 2012-04-17 23:56:47
@Ahmed,實際上不......你想看看任何有YES的東西...如果它找到一個,那些是你想忽略的東西...因此,邏輯NEGATIVE不會找到一個並獲得我開始的是NULL。如果您的取消狀態全部大寫,則更改爲「是」或「是」,無論您的一致性值設置如何。但改爲<>「是」卻沒有答案。如果某人有YES和NO,它會發現NO,包括它並且是錯誤的,因爲在測試中沒有YES。 – DRapp 2012-04-18 00:02:55
執行... **從 聯繫人選擇 c.ContactID Ç LEFT JOIN交易牛逼 上c.ContactID = t.ContactID AND t.Cancelled = 「是」 其中 t.contactID爲空* * 我得到3,5,6- 但是執行 **從 聯繫人選擇 c.ContactID ç LEFT JOIN交易噸 上c.ContactID = t.ContactID 甲ND t.Cancelled =「no」 其中 t.contactID爲空** 給了我期望的聯繫人Id結果2,4,6 有意義嗎? – Ahmed 2012-04-18 00:18:40
您是否要求SQL代碼?你有什麼嘗試? – Aaron 2012-04-17 21:02:48