我有2個表:計數記錄,其中有在鏈接表中匹配特定條件的任何記錄
T1:
id | name
------ | ------
1 | Bob
2 | John
3 | Joe
T2:
id | T1_id | type
------ | ------ | ------
1 | 1 | call
2 | 1 | email
3 | 1 | fax
4 | 2 | call
5 | 2 | email
6 | 2 | fax
7 | 3 | call
8 | 3 | email
我想算T1中的記錄數量不是在T2中有一種「傳真」類型的記錄。
因此,在這種情況下,答案是(3 |喬)
目前我有:
SELECT count(*)
FROM `T1`
JOIN `T2` on `T1`.`id` = `T2`.`T1_id`
WHERE `T2`.`type` != 'fax'
但是,這顯然是計算所有不屬於「傳真」的記錄。我不能理解我的邏輯。
任何幫助,將不勝感激!
對於那些有興趣,這種技術(左加入,則空值檢查)被稱爲左反半連接 –
謝謝,這對我很有幫助(就像其他人一樣,但是這對於我想要的是最有用的) – cfardella
@e_i_pi謝謝,我以前沒有遇到過。沒有正式的主題培訓,我總是將此稱爲排除連接。 – Strawberry