0

1 つのmysql テーブルのすべての列の共通点を見つけようとしています。私がしようとしているのは:

select * from table where 
  col1=col2 AND col1=Col3 AND col1=Col4 AND 
  col2=Col3 AND col2=Col4 AND col3=Col4;

このクエリがうまく機能しているとは思いません。誰かが効率的な方法を提案できますか。すべての列が同じテーブルからのものであることに注意してください

4

1 に答える 1

0

テーブルのインスタンスを結合する必要があります。

select distinct * from (
  select t1.col1 'intersection' from table t1, table t2
  where t1.col1=t2.col2 or t1.col1=t2.col3 or t1.col1=t2.col4
  union select t3.col2 'intersection' from table t3, table t4
  where t3.col2=t4.col3 or t3.col2=t4.col4
  union select t5.col3 'intersection' from table t5, table t6
  where t5.col3=t6.col4
)

[編集] column1 を含まない交差を含め、レコード全体ではなく値を表示するように改訂されました。

于 2012-05-01T06:54:30.790 に答える