MySQL вывод из нескольких таблиц
Допустим у вас есть две таблицы и вам нужно выбрать данные из обеих. Далее мы на примере рассмотрим как сделать это одним запросом, чтобы потом использовать эти данные в PHP.
Итак, пусть у нас есть две таблицы Users и Phones.
Пусть таблица Users выглядит так
id | name | surname |
1 | misha | ivanov |
2 | kolya | petrov |
3 | katya | sidororva |
4 | olga | vasileva |
а таблица Phones пусть будет такая
id | number | user_id |
23 | 123-34-43 | 1 |
24 | 657-83-78 | 2 |
25 | 756-87-23 | 3 |
26 | 453-32-23 | 4 |
Вот на что тут нужно обратить внимание. Во-первых, вторая таблица связана с первой с помощью столбца user_id, в котором находится id человека из таблицы Users. Во-вторых, в обеих таблицах есть поле с одинаковым названием - id.
Начнем писать запрос:
SELECT `Users`.id AS user_id, `Users`.name, `Users`.surname, `Phones`.id AS phone_id, `Phones`.number
FROM `Users` , `Phones`
WHERE `Phones`.user_id = `Users`.id
получится таблица вида
user_id | name | surname | phone_id | number |
1 | misha | ivanov | 23 | 123-34-43 |
2 | kolya | petrov | 24 | 657-83-78 |
3 | katya | sidororva | 25 | 756-87-23 |
4 | olga | vasileva | 26 | 453-32-23 |
теперь будем писать код на PHP
$query = "SELECT `Users`.id AS user_id, `Users`.name, `Users`.surname, `Phones`.id AS phone_id, `Phones`.number FROM `Users` , `Phones` WHERE `Phones`.user_id = `Users`.id"; $result = mysql_query($query); while($row = mysql_fetch_array($result)) { echo $row["user_id"]." - ".$row["name"]." ".$row["number"]."
"; }