Выборка из нескольких таблиц - MySQL (220058)
Формулировка задачи:
Добрый день.
Помогите сделать выборку с 3 и более таблиц.
Вот пример, есть несколько таблиц
table1:
table2:
table3
Как получить выборку двумя запросами чтобы получить название страны я знаю
А как это сделать одним запросом?
Спасибо
| id | name | |
| 1 | Vasia | removed@mail.ru |
| 2 | Petja | removed@mail.ru |
| item | orderdate | payed | id_user | id_country |
| item1 | 12-12-2012 | 10 | 2 | 2 |
| item2 | 13-12-2012 | 20 | 1 | 1 |
| item3 | 15-12-2012 | 11 | 2 | 3 |
| item4 | 17-12-2012 | 13 | 1 | 4 |
| item5 | 20-12-2012 | 10 | 1 | 2 |
| id | country_name |
| 1 | Austria |
| 2 | Australia |
| 3 | Bangladesh |
| 4 | Belarus |
| ... |
"SELECT table1.id, name, email, item, orderdate, payed, id_country FROM table2 JOIN table1 ON table2.id_user = table1.id" $id_country = $row['id_country']; "SELECT country_name FROM table3 WHERE id=$id_country"
Решение задачи: «Выборка из нескольких таблиц»
textual
Листинг программы
select t2.item,t2.orderdate,t2.payed,t1.name,t1.email,t3.country_name from table1 t1 inner join table2 t2 on t1.id=t2.id_user inner join table3 t3 on t3.id=t2.id_country
Объяснение кода листинга программы
В представленном коде выполняется запрос выборки данных из трех таблиц: table1, table2 и table3. Для этого используется оператор SELECT, который позволяет выбрать нужные поля из указанных таблиц.
t2.item- выбирается полеitemиз таблицыtable2.t2.orderdate- выбирается полеorderdateиз таблицыtable2.t2.payed- выбирается полеpayedиз таблицыtable2.t1.name- выбирается полеnameиз таблицыtable1.t1.email- выбирается полеemailиз таблицыtable1.t3.country_name- выбирается полеcountry_nameиз таблицыtable3. Для объединения данных из разных таблиц используются операторы JOIN. Здесь используется два JOIN:t1.id=t2.id_user- происходит объединение таблицtable1иtable2по полюidс указанием условия равенства.t3.id=t2.id_country- происходит объединение таблицtable3иtable2по полюidс указанием условия равенства. Таким образом, в результате выполнения этого запроса будет получена выборка данных из указанных таблиц, включающая поляitem,orderdate,payed,name,emailиcountry_name.