2012-01-11 22 views
0

現在、SQLでクエリを実行しようとしていますが、同じクエリで2つのテーブルを結合したいと考えています。さて、私はPHPでこのコードを使用しています:SQLクエリで2つの異なるテーブルを結合する

SELECT * FROM table1, table1 
WHERE value1 LIKE '$q%' 
OR value2 LIKE '$q%' 
LIMIT 10 

表1と表2は、TABLE1がVALUE2列とテーブル2はVALUE1列を持っていない持っていない、別のテーブルです。

私の考えは、行に特定の列(table1のみ)がある場合、table1が持つ列の値を返すかどうかをPHPでチェックすることです。また、行にtable2固有の列があることが検出された場合は、表2にある列の値が戻されます。

これを行う方法さえありますか?

+0

2つのテーブルの関係は何ですか?また、このアプローチはかなりハッキリと思われる。あなたが解決しようとしているコアの問題は何ですか?おそらくもっと良い方法があります。 – JohnFx

答えて

3

二つのテーブルは無関係ですので、同じクエリで結果を取得する唯一の意味のある方法はUNIONを使用することです:

SELECT * FROM table1 WHERE value1 LIKE '$q%' 
UNION SELECT * FROM table2 WHERE value2 LIKE '$q%' 

しかし、これはあなたが何か間違ったことをやっている徴候である可能性があります。

+0

確かに。 2つのテーブルのデザインが同じであれば、ほとんどの場合、単純に組み合わせるほうがよいでしょう。 – kba

0

あなたが作品に参加する方法については不確実であれば、私はあなたが

SELECT * FROM table1, table2; 

を行うと、それもその結果に自分の限界(WHERE)を適用することには意味がありますかどうかを確認してみてください示唆しています。

関連する問題