Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Как связать таблицу, если в другой таблице... (Дмитрий из Эстонии) 17/10/2007 - 19:28:55



From: Дмитрий из Эстонии - 17/10/2007 - 19:28:55
Subject:Как связать таблицу, если в другой таблице...
-----------------
Краткое описание проблемы:

Есть таблица doors_lift_heights из которой мне бы хотелось выбрать все данные, в независимости от того, есть ли в таблице doors_lifts2sizes записи по lift_id = ? или нет. Указание lift_id - очень важно. lift_id IS NULL не срабатывает - скорее всего потому что если в таблице которая связывается через LEFT JOIN данных после связки = 0, то колонки вообще никак не определяются.


В общем если коротко, требуется выбрать все данные из таблицы doors_lift_heights внезависимости от того, есть ли в doors_lifts2sizes или нет.


Есть запрос:

SELECT doors_lift_heights.*,
GROUP_CONCAT(lift_width_id ORDER BY lift_width_to ASC) AS widths
FROM doors_lift_heights
LEFT JOIN doors_lifts2sizes USING(lift_height_id)
LEFT JOIN doors_lift_widths USING(lift_width_id)
WHERE (lift_id = ? OR lift_id IS NULL)
GROUP BY lift_height_id
ORDER BY lift_height_to ASC

И есть таблицы:

doors_lifts2sizes CREATE TABLE `doors_lifts2sizes` (
`lift_id` int(11) NOT NULL,
`lift_width_id` int(11) NOT NULL,
`lift_height_id` int(11) NOT NULL,
KEY `lift_id` (`lift_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

doors_lift_heights CREATE TABLE `doors_lift_heights` (
`lift_height_id` int(11) NOT NULL auto_increment,
`lift_height_from` int(11) NOT NULL,
`lift_height_to` int(11) NOT NULL,
PRIMARY KEY (`lift_height_id`),
KEY `lift_height_from` (`lift_height_from`),
KEY `lift_height_to` (`lift_height_to`)
) ENGINE=MyISAM AUTO_INCREMENT=10 DEFAULT CHARSET=utf8

doors_lift_widths CREATE TABLE `doors_lift_widths` (
`lift_width_id` int(11) NOT NULL auto_increment,
`lift_width_to` int(11) NOT NULL,
PRIMARY KEY (`lift_width_id`),
KEY `lift_width_to` (`lift_width_to`)
) ENGINE=MyISAM AUTO_INCREMENT=19 DEFAULT CHARSET=utf8

doors_lifts CREATE TABLE `doors_lifts` (
`lift_id` int(11) NOT NULL auto_increment
PRIMARY KEY (`lift_id`)
) ENGINE=MyISAM AUTO_INCREMENT=17 DEFAULT CHARSET=utf8

Заранее благодарен!


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
32331



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |