-3

私は2つのテーブルAB. どちらにもフィールドphoneとが含まれていますproject_name。見たい

  • 同じ電話番号と project_name を持つテーブル A のレコードがテーブル B にいくつあるか;
  • テーブル A のレコードのうち、同じ電話番号で異なる project_name を持つテーブル B にあるレコードの数。
  • テーブル A のレコードがテーブル B にあり、異なる電話番号と同じ project_name を持つレコードの数。
  • テーブル A のレコードがテーブル B にあり、異なる電話と異なる 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
4160123456  504

前もって感謝します

4

1 に答える 1

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
于 2012-11-19T21:16:04.947 に答える