Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.039 c
15-1171576578
Goric
2007-02-16 00:56
2007.03.11
Shell в Windows


1-1168958640
alexey_public
2007-01-16 17:44
2007.03.11
Расширенные возможности MessageDlg


15-1171562699
default
2007-02-15 21:04
2007.03.11
Кто писал программы наподобие ERwin и Rational Rose


2-1172080442
Lonix
2007-02-21 20:54
2007.03.11
Значок на форме окна


2-1171830497
Mr.Vlad
2007-02-18 23:28
2007.03.11
Проблема с компонентом GLScene





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский