Форум: "Базы";
Текущий архив: 2007.03.11;
Скачать: [xml.tar.bz2];
ВнизПроблема с SELECT-запросом из 3х таблиц Найти похожие ветки
← →
^_^ (2006-12-16 21:53) [0]Бодрого времени суток мастера!
Возникла такая проблема - немогу правильно составить SQL запрос, уже извелся совсем, но ничего путного придумать не получается.
Есть такие таблицы:
MS SQL Server 2005 Express
[users]
id
name // имя юзера
[producers]
id
name // название фирмы-производителя
[wares]
id
name // название товара
price // цена товара
producer_id // ID фирмы-производителя
[orders]
id
user_id // ID юзера заказавшего товар
ware_id // ID товара заказанного юзером
Связи таблиц
[producer].id - [wares].producer_id
[orders].user_id - [user].id
[orders].ware_id - [wares].id
Суть запроса:
Требуется получить все товары заказанные юзером, в результат запроса должны быть включены сл. столбцы:
[orders].id / [producers].name / [wares].name / [wares].price
Мои попытки, не приведшие к должному результату
(выводит только одну запись (первую из желаемых) ,
хотя я уже сто раз проверял - их должно быть больше):
SELECT orders.id, producers.name AS producerName, wares.name, wares.price,
FROM orders INNER JOIN
producers ON orders.id = producers.id INNER JOIN
users ON orders.user_id = users.id INNER JOIN
wares ON orders.ware_id = wares.id AND producers.id = wares.producer_id AND producers.id = wares.producer_id
WHERE (users.id = 7)
← →
Desdechado © (2006-12-16 23:03) [1]
INNER JOIN producers ON orders.id = producers.id
это что за глупость?
зачем ты соединяешь разные сущности?
← →
^_^ (2006-12-16 23:27) [2]
> зачем ты соединяешь разные сущности?
То не я соединяю, - то мне среда разработки генерит.
← →
Anatoly Podgoretsky © (2006-12-16 23:28) [3]> ^_^ (16.12.2006 23:27:02) [2]
Наверно среда предполагает наличие мозгов.
← →
^_^ (2006-12-16 23:42) [4]> Anatoly Podgoretsky © (16.12.06 23:28) [3]
>
> > ^_^ (16.12.2006 23:27:02) [2]
>
> Наверно среда предполагает наличие мозгов.
Возможно... было бы время - разобрался в проблеме, но времени нет катострофически - решил подключить ваши мозговые ресурсы, повсему видно - проставивают (лично ваши)
← →
^_^ (2006-12-16 23:43) [5]Кстати, даже если я пишу запрос руками, как считаю нужным, она мне исправляет на этот запрос... вот такая вот загогулина...
← →
Anatoly Podgoretsky © (2006-12-16 23:45) [6]> ^_^ (16.12.2006 23:42:04) [4]
Ни чего не заржавеют.
← →
MsGuns © (2006-12-17 00:12) [7]>^_^ (16.12.06 23:42) [4]
>ваши мозговые ресурсы, повсему видно - проставивают (лично ваши)
Вот это правильно ! Так его, сермяжного ;) Простаивает, панимашь, в то время как идя навстречу и невзирая на...
← →
MsGuns © (2006-12-17 00:14) [8]>^_^ (16.12.06 23:27) [2]
>То не я соединяю, - то мне среда разработки генерит.
А что это за тинственная "среда" ?
← →
^_^ (2006-12-17 00:35) [9]Microsoft Visual Web Developer 2005 Express Edition
← →
MsGuns © (2006-12-17 00:36) [10]Ф топку !
← →
^_^ (2006-12-17 00:58) [11]Да ладно, каждый на своем пишет, лучше б с запросом помогли.
← →
sniknik © (2006-12-17 02:37) [12]а какой смысл? если ты сунешь пусть даже рабочий запрос в свою среду и она (судя по "^_^ (16.12.06 23:43) [5]") все одно исправит на этот, заведомо логически бредовый т.к. в нем попытка обьеденить "метры с литрами". как уже было сказано.
и потом найденная ошибка это, по местным традициям уже помощь... а вот отказ ее исправить это фактически хамство, либо дурость. типа
- машине не заводится.
- да в ней бензина нет.
- да ладно. каждый на своем ездит. лучше б завести помогли.
← →
^_^ (2006-12-17 03:00) [13]
> - машине не заводится.
> - да в ней бензина нет.
> - да ладно. каждый на своем ездит. лучше б завести помогли.
>
Нет, в этом случае тут сказали:
- Залили бензин не в туда.
А куда его лить если я не знаю? - не сказали.
Местные традиции документированы? Дайте сцылку...
← →
^_^ (2006-12-17 12:42) [14]Шо? Нет вариантов по запросу? Эх и эх... так и скажите шо не умеете =)
На другом ресурсе ужо на четвертом ответе подсказали решение проблемы:
SELECT orders.id, producers.name, wares.name AS Expr1, wares.description, wares.price
FROM orders INNER JOIN
users ON orders.user_id = users.id INNER JOIN
wares ON orders.ware_id = wares.id INNER JOIN
producers ON producers.id = wares.producer_id
WHERE (users.id = 1)
← →
sniknik © (2006-12-17 13:28) [15]что выкинули сравнение с разных сущностей? молодцы, только у нас про это с первого же ответа говорят. давая тебе исправить самому.
> Нет, в этом случае тут сказали:
> - Залили бензин не в туда.
> А куда его лить если я не знаю? - не сказали.
нет, если уж точная аналогия, то скорее в ответ спросили "а чего ту вместо бензина воды залил?"
[1] > ... orders.id = producers.id
> это что за глупость?
> зачем ты соединяешь разные сущности?
p.s. не нравиться стиль ответов иди туда где тебе дали готовое решение, здесь "на блюдечке" редко ответы дают, ну если только вопрос сложный/в процессе обсуждения/проще кодом чем описывать, а так обычно оставляют часть автору и самому подумать/исправить раз уж указано где.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2007.03.11;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.056 c