Объединить несколько таблиц в одном запросе
Такая задача. Есть 4 таблицы: i_list, m_list, a_list, y_list. Количество полей в них разное. Мне нужно как то объединить их в одну, временную таблицу, чтобы я мог перебрать получившийся массив через while.
Т.е.
while ($re = $query->fetch_array()) echo $re['name'] ...
В каждой таблице есть поле sid, которое служит условием. Я плохо понимаю в JOIN'ах, поэтому прошу помощи, кому не сложно.
Я пробовал так:
$query = $bds->query("
SELECT
ml.*,
il.*,
al.*
FROM
m_list ml
OUTER JOIN i_list il ON ml.sid = il.sid
OUTER JOIN a_list al ON ml.sid = al.sid
");
Получилось - ничего путного. Хочу, чтобы запрос был аналогичен такой конструкции:
$query = $bds->query("SELECT * FROM <table-name> WHERE sid='$var'");
Но как сделать - не представляю.
upd
$query = $bds->query("
SELECT
ml.header,
il.header
FROM
m_list ml WHERE ml.sid='$var'
LEFT JOIN i_list il ON il.sid = '$var'
");
$r = print_r($query->fetch_array(),1);
echo '<pre>'.$r.'</pre>';
Ответы (1 шт):
Автор решения: Daniil Loban
→ Ссылка
$query = $bds->query("SELECT
ml.header
FROM `ml`
WHERE ml.SID='$var'
UNION
SELECT il.header
FROM `il`
WHERE il.SID='$var'");
Результат
таблицы

