2017-08-08 3 views
1

、私は3つのフィールドがあります。SQLクエリ同じ分野の異なる分野の私のDBに

property_id 
e_id 
name 

を私は同じproperty_idと名前のregistersが異なるe_idを知っておく必要があります。

+2

レジスタとは何ですか? –

+0

@TabAlleman私は3つの列が集合的にレジスタを記述していると思います。 –

+0

e_idが主キーですが、私はそれを取得しません... – canmenev

答えて

-1

あなたはここに クエリがプロパティと名を超える

select property_id, e_id , name from your_table groupby e_id 
+1

http://rextester.com/XCOUD86115を試してみると、これが正しい結果を返さないことがわかります。たぶん、あなたは拡張されたmySQLグループに頼るつもりです。あなたの答えにそれを伝えるのは難しいと指定することなく。 – xQbert

+0

ええ、xQbertは正しいです! –

3

集計されますgroup by句を使用して、個別のe_id値の数数えることができます:

SELECT property_id, name 
FROM yourTable 
GROUP BY property_id, name 
HAVING COUNT(DISTINCT e_id) > 1 

注意をproperty_idがあった場合には名前を一義的に決定する主キーは、プロパティだけで集計できます。

+0

あなたはグループ名で 'name'を紛失していますが、サイト上に既にこの質問に重複があります。 –

0

自己結合を使用すると、プロパティと名前の一致を見つけることができます。 E_IDに<を使用することで、レコードの一致が1つだけ得られ、その逆数は保証されません。

  1. MySQLを仮定

    Rextester Working Example

    。これには特定のDBロジックがないため、ほぼすべてのエンジンで動作するはずです。

  2. 登録は、これら3つの固有のフィールドを持つ表のレコードです。

だから

SELECT A.Property_ID, A.E_ID, A.Name, B.E_ID 
FROM Tbl A 
INNER JOIN tbl B 
on A.Property_ID = B.Property_ID 
and A.Name = B.Name 
and A.E_ID < B.E_ID 

データ:

+-------------+------+-------+---+ 
| Property_ID | E_ID | Name | | 
+-------------+------+-------+---+ 
|   1 | 1 | A  | | 
|   1 | 1 | A  | | 
|   2 | 1 | Test | | 
|   2 | 2 | Test | | 
|   3 | 2 | Test2 | | 
|   3 | 3 | Test3 | | 
|   4 | 4 | Test4 | | 
|   5 | 5 | Test5 | | 
|   6 | 7 | Test6 | | 
|   6 | 6 | Test6 | | 
+-------------+------+-------+---+ 

は与える:

+-------------+------+-------+---+ 
|   2 | 1 | Test | 3 | 
|   6 | 6 | Test6 | 7 | 
+-------------+------+-------+---+ 

ではなく:

+-------------+------+-------+---+ 
|    |  |  | | 
|   2 | 2 | Test | 1 | 
|   6 | 7 | Test6 | 6 | 
+-------------+------+-------+---+ 
0
SELECT e_id, property_id, name 
FROM table1 
WHERE e_id in (SELECT e_id 
       FROM table1 
       GROUP BY e_id 
       HAVING count(e_id) > 1) 
+0

私はこれが望ましい結果を返すとは思わない:ここでそれを試してみてください:http://rextester.com/YCMSOF94139 – xQbert

+0

あなたのURLを使用して私のクエリをテストしたところ、私がその質問を理解していない限り。 – Khaled

関連する問題