Получение данных из нескольких таблиц. JOIN

Для получения записей сразу из нескольких таблиц можно воспользоваться оператором JOIN, который объединяет таблицы. Например, необходимо получить все заказы пользователя. Пользователи находятся в одной таблице(tbl_users), а заказы в другой(tbl_orders). В таком случае, необходимо связать эти таблицы, по полю ID пользователя, которое должно быть в таблице пользователей и в таблице с заказами. Для получения заказов пользователя с ID 1, запрос будет выглядеть следующим образом:
SELECT * FROM 'tbl_users'
JOIN 'tbl orders'
ON 'tbl orders'.'id user' = 'tbl users'.'id' WHERE 'tbl_users'.'id' = 1

В операторе JOIN должна быть указана таблица, которая присоединяется, а так же условие, по которому будет реализована связь таблиц, в данном случае это id пользователя.
Если для пользователя не будет найдено ни одного заказа, то результат выполнения запроса будет пустым. Если необходимо получить данные о пользователе независимо от существования заказов, то перед оператором JOIN необходимо дописать LEFT, в таком случае запрос будет таким:
SELECT * FROM 'tbl_users'
LEFT JOIN 'tbl_orders'
ON 'tbl orders'.'id user' = 'tbl users'.'id' WHERE 'tbl_users'.'id' = 1

Пример:
// предварительно, необходимо реализовать 
// подключение к базе данных
// запрос 
$query = mysql_query("
SELECT * FROM 'tbl_users'
LEFT JOIN 'tbl_orders'
ON 'tbl orders'.'id user' = 'tbl users'.'id' WHERE 'tbl users'.'id' = 1 ") or die(mysql_error());
// получение результата запроса 
$result = array();
while($row = mysql_fetch_array($query, MYSQL ASSOC)){ 
$result[] = $row;
}
// вывод результата 
print_r ($result);
Теги:
JOIN
Добавлено: 27 Марта 2018 16:23:40 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...