SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 19.11.2012 22:35:05

odlf3
Участник
Зарегистрирован: 19.11.2012
Сообщений: 6

запрос из 3 таблиц

Всем привет!
Подскажите как правильно составить запрос
есть 3 таблицы:
таблица1(Характеристика) -> id
таблица2(производители) -> manufacturer_id, name
таблица3(товары) -> product_manufacturer_id, extra_field_id
как вывести производителей у которых есть товар с определенной характеристикой например id = 132
ответ на запрос: manufacturer_id, name

Отредактированно odlf3 (19.11.2012 22:39:37)

Неактивен

 

#2 19.11.2012 23:30:16

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: запрос из 3 таблиц

extra_field_id это характеристики? тогда:


SELECT manufacturer_id, name FROM `таблица3(товары)` JOIN `таблица2(производители)` ON manufacturer_id=product_manufacturer_id WHRE extra_field_id=132;


P.S. Не нужно дублировать темы.

Неактивен

 

#3 20.11.2012 00:52:38

odlf3
Участник
Зарегистрирован: 19.11.2012
Сообщений: 6

Re: запрос из 3 таблиц

Да extra_field_id это характеристики!
Хорошо больше не буду дублировать, я здесь первый раз, думал так быстрей ответят.
Запрос работает, вот только не совсем верно. Мне нужно вывести список ПРОИЗВОДИТЕЛЕЙ, а не товаров. причем чтоб они не дублировались(желательно, но можно и отфильтровать и с помощью php).
нашел любое количество товаров c характеристикой id=132 и вывел в список его производителя...

Отредактированно odlf3 (20.11.2012 00:54:14)

Неактивен

 

#4 20.11.2012 01:38:08

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: запрос из 3 таблиц

На сколько я могу судить по приведенной в первом посте структуре таблиц, мой запрос как раз и вернет производителей. Если это не так, то приведите структуру (в виде create table ..) и тестовые данные на 10 строк (insert into ..).
Чтобы избавиться от дубликатов - SELECT DISTINCT ...

Неактивен

 

#5 20.11.2012 11:42:14

odlf3
Участник
Зарегистрирован: 19.11.2012
Сообщений: 6

Re: запрос из 3 таблиц

все отлично, все работает, спасибо!
Но есть маленький нюанс. name на самом деле полностью name_ru-RU и запрос с таким именем из-за дефиса не проходит, а если поставить * то name_ru-RU аж 2 штуки из каждой таблицы, как потом вызывать именно тот name_ru-RU если их две. Ставил внутренние кавычки тоже не хочет работать а простые одинарные кавычки выдают все значения name_ru-RU. Как справится с этой бедой?

Неактивен

 

#6 20.11.2012 16:25:30

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: запрос из 3 таблиц

select  `name_ru-RU`, ..

Неактивен

 

#7 20.11.2012 18:58:30

odlf3
Участник
Зарегистрирован: 19.11.2012
Сообщений: 6

Re: запрос из 3 таблиц

select `таблица2(производители)`.`name_ru-RU`, ..

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson