Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
tted Member Откуда: Сообщений: 5 |
Прошу помочь: как правильно написать запрос Есть 3 (или более) таблицы: Таблица1: Поле: Товар Таблица2 Поле: Товар Поле: Количество1 Таблица3 Поле: Товар Поле Количество2 В результирующей таблице надо получить: Поле: Товар Поле: Количество1 Поле: Количество2 Из Таблицы1 должны присутствовать все элементы. MS SQL2000 Спасибо. |
21 авг 12, 11:54 [13042004] Ответить | Цитировать Сообщить модератору |
tpg Member Откуда: Novosibirsk Сообщений: 23902 |
Так у вас ответ в заголовке топика - с помощью left join. |
21 авг 12, 12:20 [13042226] Ответить | Цитировать Сообщить модератору |
tted Member Откуда: Сообщений: 5 |
Не выходит. Делал по такому образцу : SELECT Cars.*, WeightOpt.opt_value AS Weight, HeightOpt.opt_value AS Height FROM Cars LEFT JOIN CarOpts AS WeightOpt ON WeightOpt.car_id = Cars.id AND WeightOpt.opt_name = "Weight" LEFT JOIN CarOpts AS HeightOpt ON HeightOpt.car_id = Cars.id AND HeightOpt.opt_name = "Height" WHERE Cars.id = 1 На втором joine выдается ошибка |
21 авг 12, 12:22 [13042245] Ответить | Цитировать Сообщить модератору |
SHok_by Member Откуда: Minsk Сообщений: 51 |
текст ошибки какой? |
21 авг 12, 12:25 [13042274] Ответить | Цитировать Сообщить модератору |
SHok_by Member Откуда: Minsk Сообщений: 51 |
WeightOpt.opt_name = "Weight" -> WeightOpt.opt_name = 'Weight' и HeightOpt.opt_name = "Height" -> HeightOpt.opt_name = 'Height' |
21 авг 12, 12:29 [13042311] Ответить | Цитировать Сообщить модератору |
Konst_One Member Откуда: Сообщений: 11562 |
SELECT Cars.*, W.Weight, H.Height FROM Cars LEFT JOIN (SELECT opt_value as Weight, car_id FROM CarOpts WHERE opt_name = 'Weight') AS W ON W.car_id = Cars.id LEFT JOIN (SELECT opt_value as Height, car_id FROM CarOpts WHERE opt_name = 'Height') AS H ON H.car_id = Cars.id WHERE Cars.id = 1 это что ли хотите получить? |
21 авг 12, 12:38 [13042389] Ответить | Цитировать Сообщить модератору |
tted Member Откуда: Сообщений: 5 |
Спасибо, господа ) |
21 авг 12, 13:50 [13042998] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47047 |
|
||
21 авг 12, 13:57 [13043046] Ответить | Цитировать Сообщить модератору |
Konst_One Member Откуда: Сообщений: 11562 |
да, подселекты конечно не обязательны |
21 авг 12, 14:04 [13043095] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |