mysqlで1つのクエリで2つの異なるテーブルから2つのレコードを選択するには?
私が使用している検索クエリの
$search = $_GET['gd']
$arama_sonuc = mysql_query("select * from mp3 where baslik like '%$search%'");
大丈夫。mp3 テーブルの結果が表示されます。しかし、同じクエリを使用して、HABERLER テーブルでも何かを検索する必要があります..どうすればよいですか?
UNIONコマンドを使用し ますhttp://dev.mysql.com/doc/refman/5.0/en/union.html
select * from mp3 where baslik like '%$search%'
UNION
select * from HABERLER where baslik like '%$search%'
(おそらく、同じ数の列と同じタイプなどがあります)
質問は不明確であり、次のいずれかの構成が必要になる可能性があります
SELECT *
FROM mp3
WHERE baslik like '%$search%'"
UNION
SELECT *
FROM HABERLER
WHERE baslik like '%$search%'"
また
SELECT *
FROM mp3 M
JOIN HABERLER H on H.some_field = M.some_field_in_mp3_table
WHERE baslik like '%$search%'"
UNION構造を使用すると、さまざまなテーブルから単一の結果セットレコードを収集できます。レコードは構造的に同一である必要があります。つまり、同じ列を持っている必要があります(必ずしも同じ名前である必要はありませんが、同じタイプのデータを使用します)。結果セットには、最初のクエリを満たすすべての行と2番目のクエリを満たすすべての行が含まれます(ALLキーワードによっては重複が排除される可能性があります)。
UNIONは、たとえばmp3テーブルとHABERLERテーブルに同じタイプのレコード(例:音楽ファイルに関する情報)が含まれている場合に役立ちます。
JOIN構造を使用すると、最初のテーブルの列と2番目のテーブルの列から作成されたレコードを含む結果セットを取得できます。2番目の表のレコードは、JOINの「ON状態」を満たしていることに基づいて選択されます。
JOINは、2つのテーブルに補足情報が含まれている場合に役立ちます(たとえば、mp3にはmp3ファイルに関する情報が含まれ、HABERLERにはミュージシャンに関する情報が含まれます。mp3はその列の1つでミュージシャンを参照し、HABERLERには同じ値でミュージシャンを識別する列があります)