1

私はしばらくの間.NETを使用していますが、SQLの世界ではまだかなりエントリーレベルです。単純なクエリであるべきだと思ったものを構築するのに助けが必要です。

1つのテーブルの顧客が複数の電話番号(別のテーブルに保存されている)を持つことを可能にする連想エンティティがあります。その特定の顧客に関連付けられている番号を取得するのは簡単です。ただし、電話番号を共有している顧客のみを表示するクエリが必要です。

おそらくこれはGROUPBY句を使用し、HAVING Count(*)> 1(または何か)を指定して実行できると思いましたが、探している結果が得られません...

これは、BLLに実装しているビジネスロジックの違反であり、対処する必要があるため、これを行う必要があります。

4

1 に答える 1

2

私は電話番号に参加し、再び顧客に戻ります。そうすれば、誰が誰とどの番号を介し一致するかを表示できます。

SELECT c1.*, c2.*, p1.phone_number
FROM customer c1
JOIN customer_phone_number p1 ON p1.customer_id = c1.id
JOIN customer_phone_number p2 
    ON p1.phone_number = p2.phone_number and p2.customer_id != p1.customer_id 
JOIN customer c2 ON c2.id = p2.customer_id
于 2012-06-24T00:50:50.367 に答える