2012-03-15 4 views
1

1つのMySQLクエリに問題があります。 私はfolowing構造のテーブルを有する:(C2C1 ==レコードのレコード)がIFMySQLを使用して、異なる列に一致するレコードを見つける方法を教えてください。

+------+------+------+ 
| c1 | c2 | c3 | 
+------+------+------+ 
| AA | A-A | 11 | - row1 
| B-B | BB | 12 | - row2 
| A-A | AA | 13 | - row3 
| BB | B-B | 14 | - row4 
| CC | C-C | 15 | - row5 
| CC | C-C | 16 | - row6 
| DD | DDD | 17 | - row7 
+------+------+------+ 

を - >行が(IFでC1 ==レコードのレコードを

と一致C1) - >行は、どのように私は、MySQLのクエリを作成することができます

row1 match row3 

row2 match row4 

row5 match row6 

と一致します一致する行を表示しますか?

私は私の英語を謝ります。 ありがとうございます!

答えて

1

あなたは外積でこれを行うことができます:あなたは自分自身にテーブルを結合する場合、あなたはそれが一致している必要がありますどのような条件を指定することができます

SELECT * FROM table t1, table t2 WHERE t1.c1=t2.c1 OR t1.c1=t2.c2 
-1

。ただ、それをこのような二つの異なるエイリアスを与える:

SELECT table1.*, 
      table2.* 
     FROM nameoftable table1 
INNER JOIN nameoftable table2 
     ON (table1.c1 = table2.c2 
      OR table1.c1 = table2.c1) 

あなたは、各テーブルから同じ列名を持つことになり、その場合には、あなたが使用しなくても各列の別名を指定する必要がありますので、それは文句ことがあります*(あなたが遅くなる、バックあなたが必要以上のデータを取得することができるので、とにかくベストプラクティスではありません):

SELECT table1.c1 AS t1c1, 
     table1.c2 AS t1c2, 
     table1.c3 AS t1c3, 
     table2.c1 AS t2c1, 
     table2.c2 AS t2c2, 
     table2.c3 AS t2c3 
+0

C1 = C1 – Macros

+0

私の悪い場合解決していません - 質問を読み違えています。修正するように編集しました。 –

関連する問題