2012-11-19 31 views
-2

我有兩個表AB。兩者都包含字段phoneproject_name。我想看看如何檢查多個項目是否在SQL的另一個表中

  • 表A有多少記錄在表B中,電話號碼和項目名稱相同;
  • 來自表A的多少條記錄在表B中具有相同的電話號碼和不同的project_name;
  • 表B中來自表A的記錄數與不同的手機和相同的project_name;
  • 表B中有多少條記錄來自表A,具有不同的電話和不同的project_name。

我試圖寫這些查詢。但結果很糟糕。你可以幫幫我嗎?

例如

Table A: 

phone  project_name 
4161234567 502 
4161234568 502 
4161234569 501 
4161234560 502 


Table B: 

phone  project_name 
4161234567 502 
4161234568 503 
4160258963 501 
416

預先感謝您

+0

請添加一些示例數據,這將有助於人們幫助您解決您的問題。謝謝! –

+0

你確實需要顯示你寫的查詢。沒有這一點,我們不能說出你可能會做錯什麼。 –

回答

2

問一些愚蠢的問題...得到愚蠢的答案。取決於對問題的解釋,這可能會也可能不會是正確的。

/*records from table A are in table B with same phone number and project_name; */ 
SELECT count(*), A.Phone, A.Project_name 
FROM A 
INNER JOIN B 
    on A.Phone = B.Phone 
and A.project_name = B.Project_name 
GROUP BY A.Phone, A.Project_name 

/*same phone number and different project_name*/ 
SELECT count(*), A.Phone, A.Project_name 
FROM A 
INNER JOIN B 
    on A.Phone = B.Phone 
and A.project_name <> B.Project_name 
GROUP BY A.Phone, A.Project_name 

/*different phone and same project_name*/ 
SELECT count(*), A.Phone, A.Project_name 
FROM A 
INNER JOIN B 
    on A.Phone <> B.Phone 
and A.project_name = B.Project_name 
GROUP BY A.Phone, A.Project_name 

/*different phone and different project_name*/ 
SELECT count(*), A.Phone, A.Project_name 
FROM A 
INNER JOIN B 
    on A.Phone <> B.Phone 
and A.project_name <> B.Project_name 
GROUP BY A.Phone, A.Project_name 
相關問題