Страница: 1 |
Вопрос: Знатокам SQL СРОЧНО!!! | Добавлено: 23.04.04 19:51 |
Автор вопроса: ![]() |
Товарищи, нужна ваша СРОЧНАЯ ПОМОЩЬ!!! Есть 3 таблицы (с указанием реквизитов): Магазины (Код магазина|Наименование|Дилер|Район|Адрес|Телефон|), Детали (Код детали|Наименование|... и т.д.), Реестр (Код записи|Код магазина|Код детали|Цена) Нужно написать запрос, выводящий все магазины, торгующие указанной деталью (предположим, 'КОЛЕСО') с указанием цены по которой продается деталь. Вот что я написал: SELECT Наименование, Дилер, Район, Адрес, Телефон, Реестр.[Цена детали (руб)] Проблема в том, что в этом случае выдаются все записи в таблице Магазины, коды которых указаны в таблице Реестр. А нужно, чтобы только те, где Реестр.Код детали = Детали.Код детали и т.д. (по запросу должно быть понятно...). Очень жду вашей помощи, заранее благодарен, Михаил. |
Ответы | Всего ответов: 5 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 86 Ответов: 920 |
Профиль | Цитата | #1 | Добавлено: 23.04.04 21:26 |
SELECT Наименование, Дилер, Район, Адрес, Телефон, Реестр.[Цена детали (руб)] |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 8 Ответов: 5 |
Профиль | Цитата | #2 | Добавлено: 25.04.04 11:40 |
AASoft, запрос не работает (набирал в Access) - пишет - "ошибка синтаксиса (пропущен оператор)" |
Номер ответа: 3 Автор ответа: ![]() ![]() Вопросов: 3 Ответов: 122 |
Профиль | Цитата | #3 | Добавлено: 26.04.04 22:56 |
SELECT Наименование, Дилер, Район, Адрес, Телефон, Реестр.[Цена детали (руб)] WHERE Магазины.[Код магазина] = Реестр.[Код магазина] AND Магазины.[Код магазина] =Реестр.[Код магазина] AND Реестр.[Код детали] IN Попробуй так. |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() Вопросов: 2 Ответов: 17 |
Профиль | Цитата | #4 | Добавлено: 28.04.04 11:13 |
согласен с AASoft, INNER JOIN будет всегда быстрей SELECT IN (...), ведь только в этом случае работает поиск по индексу (Реестр.[Код детали]) а в запросе пропущены круглые скобки: SELECT Наименование, Дилер, Район, Адрес, Телефон, Реестр.[Цена детали (руб)] FROM (Магазины INNER JOIN Реестр ON Магазины.[Код магазина] = Реестр.[Код магазина]) INNER JOIN Детали ON Детали.[Код детали] = Реестр.[Код детали] WHERE Детали.Наименование = 'Колесо'; если запрос пишешь а Акцессе, то используй построитель запросов - он правильно соберет связи |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 86 Ответов: 920 |
Профиль | Цитата | #5 | Добавлено: 30.04.04 21:34 |
gy, ya evo tak prosto pisal, bez nichego. a voobsheto naskokaya znayu enti skobki ne nuzhny....aaaaaaaa, mozhet to toka v SQL Server'e, a??nu, ne znayu, no vopros ved` vrode reshili?nu i horosho esli rabotaet |
Страница: 1 |
|