、私は3つのフィールドがあります。SQLクエリ同じ分野の異なる分野の私のDBに
property_id
e_id
name
を私は同じproperty_id
と名前のregisters
が異なるe_id
を知っておく必要があります。
、私は3つのフィールドがあります。SQLクエリ同じ分野の異なる分野の私のDBに
property_id
e_id
name
を私は同じproperty_id
と名前のregisters
が異なるe_id
を知っておく必要があります。
あなたはここに クエリがプロパティと名を超える
select property_id, e_id , name from your_table groupby e_id
http://rextester.com/XCOUD86115を試してみると、これが正しい結果を返さないことがわかります。たぶん、あなたは拡張されたmySQLグループに頼るつもりです。あなたの答えにそれを伝えるのは難しいと指定することなく。 – xQbert
ええ、xQbertは正しいです! –
集計されますgroup by句を使用して、個別のe_id
値の数数えることができます:
SELECT property_id, name
FROM yourTable
GROUP BY property_id, name
HAVING COUNT(DISTINCT e_id) > 1
注意をproperty_id
があった場合には名前を一義的に決定する主キーは、プロパティだけで集計できます。
あなたはグループ名で 'name'を紛失していますが、サイト上に既にこの質問に重複があります。 –
自己結合を使用すると、プロパティと名前の一致を見つけることができます。 E_IDに<を使用することで、レコードの一致が1つだけ得られ、その逆数は保証されません。
。これには特定のDBロジックがないため、ほぼすべてのエンジンで動作するはずです。
だから
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 |
+-------------+------+-------+---+
レジスタとは何ですか? –
@TabAlleman私は3つの列が集合的にレジスタを記述していると思います。 –
e_idが主キーですが、私はそれを取得しません... – canmenev