Как выбрать две записи из двух разных таблиц с одним запросом в MySQL - PullRequest
0 голосов
/ 29 января 2010

Как выбрать две записи из двух разных таблиц с одним запросом в MySQL?

для поискового запроса я использую

$search = $_GET['gd']
$arama_sonuc = mysql_query("select * from mp3 where baslik like '%$search%'");

ну это нормально. он показывает мне результаты из таблицы mp3. но с тем же запросом мне нужно искать что-то в таблице HABERLER тоже .. как я могу это сделать?

Ответы [ 2 ]

4 голосов
/ 29 января 2010

Вопрос неясен, и вам может понадобиться одна из следующих конструкций

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 позволяет собирать в одном наборе результатов записи из разных таблиц; записи должны быть структурно идентичными, т. е. иметь один и тот же столбец (не обязательно называться одинаково, но с одинаковым типом данных). Результирующий набор включает все строки, которые удовлетворяют первому запросу, и все строки, которые удовлетворяют второму запросу (с возможным удалением дубликатов в зависимости от ключевого слова ALL).
UNION полезно, если, например, mp3 и таблица HABERLER содержат записи одного типа (например, информация о музыкальных файлах).

Конструкция JOIN позволяет получить набор результатов, который содержит записи, которые сделаны из столбцов в первой таблице и столбцов, созданных во второй таблице. Записи из второй таблицы отбираются на основе их удовлетворяющего «ВКЛЮЧЕНО» условия СОЕДИНЕНИЯ.
JOIN полезно, если две таблицы содержат дополнительную информацию (например, mp3 содержит информацию о mp3-файлах, а HABERLER содержит информацию о музыкантах; mp3 ссылается на музыкантов в одном из своих столбцов, а HABERLER имеет столбец, определяющий музыканта по то же значение)

4 голосов
/ 29 января 2010

Используйте команду 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%'

(предположительно они имеют одинаковое количество столбцов и одинаковые типы и т. Д.)

...