Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: MySQL. Подстановка значений из таблицы через ID

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
varb
Отправлено: 09 Сентября, 2014 - 22:54:25
Post Id



Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Сент. 2014  


Помог: 0 раз(а)




Есть две таблицы в MySQL:
products (id, product_name, category_id)
categories (category_id, category_name)

Поля "category_id" связаны между собой внешним ключом.
Для примера таблицы заполнены следующими значениями:
"products" - 1, Яблоко, 1
"categories" - 1, Фрукты

Задача: нужно при выводе продуктов вместо номера категории подставить значение из поля "category_name"
(ориентируясь на то, что таких полей, которые нужно вывести через "category_id" много)
 
 Top
Мелкий Супермодератор
Отправлено: 10 Сентября, 2014 - 09:26:43
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




join. Просто join.


-----
PostgreSQL DBA
 
 Top
varb
Отправлено: 10 Сентября, 2014 - 09:30:10
Post Id



Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Сент. 2014  


Помог: 0 раз(а)




Мелкий пишет:
join. Просто join.

Можете, пожалуйста, написать код. Ибо я уже натыкался на манулы по join и на ответы в интернете, но так и не смог понять как использовать.
 
 Top
Мелкий Супермодератор
Отправлено: 10 Сентября, 2014 - 09:35:23
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




CODE (SQL):
скопировать код в буфер обмена
  1. SELECT /**/ FROM products JOIN categories USING(category_id)


-----
PostgreSQL DBA
 
 Top
varb
Отправлено: 15 Сентября, 2014 - 11:00:03
Post Id



Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Сент. 2014  


Помог: 0 раз(а)




Мелкий пишет:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT /**/ FROM products JOIN categories USING(category_id)

Спасибо! Это работает
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM products INNER JOIN categories USING(category_id) ORDER BY product_name


Теперь другая проблема. Например, я хочу привязать к таблице "products" более одной таблицы.
Добавлю в неё столбец "supplier_id" и соответствующую ей таблицу:
products (id, product_name, category_id, supplier_id)
categories (category_id, category_name)
suppliers (supplier_id, supplier_name)

Пробовал к INNER JOIN присунуть через запятую ещё одну таблицу - не вышло.
Подскажите, как это реализовать и как правильно построить SQL-запрос?
 
 Top
Sail
Отправлено: 15 Сентября, 2014 - 11:25:20
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




varb пишет:
Пробовал к INNER JOIN присунуть через запятую ещё одну таблицу

Например, так:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `products` JOIN `categories` USING(`category_id`) JOIN `suppliers` USING(`supplier_id`)

А вообще-то вот: Синтаксис оператора JOIN
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB