Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

LEFT JOIN или как-то иначе? [MySQL]


Некто ©   (2006-05-27 01:25:00) 

SELECT
mag.id,
sec.name,
mat.name,
sym.name
FROM magazine as mag
LEFT JOIN colors as col
LEFT JOIN sectors as sec
LEFT JOIN materials as mat
LEFT JOIN symbols as sym
ON sym.id=mag.id_symbol
ON mat.id=mag.id_material
ON sec.id=mag.id_sector
ON col.id=mag.id_color
WHERE mag.id=1;


sectors, materials и symbols - справочники, которые подчинены таблице magazine.
По запросу возвращается произведение таблиц.
Соответственно меня это не устраивает. Как сделать чтобы выводилась только одна запись mag.id= какой_то_номер?

ЗЫ: На самом деле таблиц в этом запросе больше. Уже запутался ужасно.


comtat   (2006-05-29 11:06:00) [1]

> LEFT JOIN colors as col
> LEFT JOIN sectors as sec
> LEFT JOIN materials as mat
> LEFT JOIN symbols as sym
> ON sym.id=mag.id_symbol
> ON mat.id=mag.id_material
> ON sec.id=mag.id_sector
> ON col.id=mag.id_color

таким способом тока баги делаются


evvcom   (2006-05-29 08:18:00) [2]


> LEFT JOIN colors as col
> LEFT JOIN sectors as sec
> LEFT JOIN materials as mat
> LEFT JOIN symbols as sym
> ON sym.id=mag.id_symbol
> ON mat.id=mag.id_material
> ON sec.id=mag.id_sector
> ON col.id=mag.id_color

ты это из рабочего запроса скопировал или только что придумал?


ЮЮ   (2006-05-27 08:37:00) [3]

SELECT
mag.id,
sec.name,
mat.name,
sym.name
FROM
 magazine as mag
 LEFT JOIN colors as col ON col.id=mag.id_color
 LEFT JOIN sectors as sec ON sec.id=mag.id_sector
 LEFT JOIN materials as mat ON mat.id=mag.id_material
 LEFT JOIN symbols as sym ON sym.id=mag.id_symbol

WHERE mag.id=1;


Наверх

Титульная страница Поиск, карта сайта Написать письмо