Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.11;
Скачать: CL | DM;

Вниз

Проблема с 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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.039 c
5-1149513099
Gleb
2006-06-05 17:11
2007.03.11
Подскажите как в компоненте TTreeView через edit1.text добавить н


8-1152106721
id
2006-07-05 17:38
2007.03.11
Вырезание куска из TBitmap


15-1171541037
Gin2
2007-02-15 15:03
2007.03.11
DB2 Express-C 9 - кто-то юзает?


15-1171382070
oldman
2007-02-13 18:54
2007.03.11
Что только не узнаешь по телеку...


15-1171214336
Веталь
2007-02-11 20:18
2007.03.11
А драйвера полностью грузятся в память?