2017-04-21 8 views
0

データベース内の一致をカウントする必要があります。MySQLは2行を1つとしてカウントします

入力:

id_to id_from 
1  2 
2  1 
1  3 
3  1 
1  4 
5  1 

5番目と6番目の行が一方向だけがそう数えないいる

出力例:(暗黙)1だから

id_match 
1  
2 
3 

、2 3と逆のマッチがありますが、4と5の場合は一致しません。 EDITED

が---- ----テーブル名を仮に

は、 "例" であると私は、ID = 1のすべての一致を取得したいし、SQLクエリは次のようになります。

SELECT count(*) FROM 
(SELECT id_to FROM example WHERE id_from = 1) as t1, 
(SELECT id_from FROM example WHERE id_to = 1) as t2 
WHERE t1.id_to = t2.id_from 

多分それを

+0

質問でid_toでグループを試す –

+0

@Leonardo質問は私にはかなり不明です。あなたのテーブル名は何ですか? –

+0

'id_to'と' id_from'の値は常に異なっていますか、 'id_to = 1、id_from = 1'でもかまいませんか? –

答えて

0

を行うには良い方法がありますが、私はデモを作成しました

SELECT DISTINCT id_from AS matched_id 
FROM your_table AS data1 
WHERE EXISTS (SELECT 1 
       FROM your_table AS data2 
       WHERE data1.id_from = data2.id_to 
         AND data1.id_to = data2.id_from) 

を試みることができるhere

+0

ありがとう!これは私が必要とするものではありませんが、少なくとも1つの一致を持つすべてのIDを返します。非常に興味深い –

関連する問題