0

2番目のフィールドが同じ場合、1つのフィールドに基づいて値を見つけるクエリを実行する必要があります

表の例:

id, what, why
1, 2, 2
2, 3, 4
3, 3, 2

したがって、両方の理由が 2 であるため、結果が 2 と 3 を返すようにしたいと考えています。

しかし、理由 (2) は不明なので、(2 と 3) の組み合わせが同じ理由の値を持つかどうかだけを知る必要があります。理にかなっていますか?どんな助けでも感謝します。

別の例はより明確かもしれません

id, building, color
 1,   house,  white
 2,  garage,  red
 3,  garage,  white

建物 = 家と建物 = ガレージの場所をクエリすると、色が一致する場合にのみ結果が得られます。

4

4 に答える 4

3
SELECT what
FROM YourTable A
WHERE EXISTS(SELECT 1 FROM YourTable
             WHERE what <> A.what 
             AND why = A.why)

これはこれのデモです。

于 2013-09-24T19:59:32.467 に答える
0

この作品のようなものでしょうか:

SELECT GROUP_CONCAT(what) as what, why
FROM YourTable
GROUP BY why
HAVING COUNT(*) > 1

デモ: http://sqlfiddle.com/#!2/62da8/5

于 2013-09-24T20:00:36.130 に答える