SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 12.05.2010 00:24:38

arxangelvip
Участник
Зарегистрирован: 12.05.2010
Сообщений: 4

помогите избавиться от inner join

народ, может есть добрые люди здесь которые помогут. пишу курсач по БД и препод ругается на использование JOIN. сам просто я в sql чайник.

1 запрос)
SELECT Сотрудники.Фамилия, Сотрудники.Имя, Сотрудники.Отчество, Count(Заказы.Код_тура) AS Количество
FROM Сотрудники LEFT JOIN Заказы ON Сотрудники.Код_сотрудника=Заказы.Код_сотрудника
WHERE (((Заказы.Дата_оформления) Between [Введите начальную дату:] And [Введите конечную дату:]))
GROUP BY Сотрудники.Фамилия, Сотрудники.Имя, Сотрудники.Отчество
ORDER BY Count(Заказы.Код_тура) DESC;

p.s. здесь таблицы Сотрудники (в ней код_сотрудника Ф. И. О.) и заказы(в ней код_сотрудника) нужно вывести фио сотрудников с указанием количества заказов за определенный промежуток времени

2 запрос)
SELECT Клиенты.Фамилия, Клиенты.Имя, Клиенты.Отчество, Туры.Страна, Туры.Город
FROM Туры INNER JOIN (Клиенты INNER JOIN заказы ON Клиенты.Код_клиента=заказы.Код_клиента) ON Туры.Код_тура=заказы.Код_тура
WHERE (((Туры.Страна)=[Введите страну])) OR (((Туры.Город)=[Введите город]));

p.s.2 здесь таблицы Клиенты ( в ней поля Код_клиента, Фамилия, Имя, Отчество), заказы (здесь Код_тура, Код_клиента) и Туры (здесь Код_тура, Страна, Город). нужно вывести фио клиентов по названию либо страны, либо города

Отредактированно arxangelvip (12.05.2010 00:25:39)


Прикрепленные файлы:
Attachment Icon Курсовая.rar, Размер: 219,796 байт, Скачано: 557

Неактивен

 

#2 12.05.2010 00:34:56

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: помогите избавиться от inner join

SELECT Сотрудники.Фамилия, Сотрудники.Имя, Сотрудники.Отчество, (SELECT count(Заказы.Код_тура) AS Количество FROM Заказы WHERE Сотрудники.Код_сотрудника=Заказы.Код_сотрудника)
FROM Сотрудники
WHERE (((Заказы.Дата_оформления) Between [Введите начальную дату:] And [Введите конечную дату:]))
ORDER BY 4 DESC;

Неактивен

 

#3 12.05.2010 00:40:40

arxangelvip
Участник
Зарегистрирован: 12.05.2010
Сообщений: 4

Re: помогите избавиться от inner join

vasya написал:

SELECT Сотрудники.Фамилия, Сотрудники.Имя, Сотрудники.Отчество, (SELECT count(Заказы.Код_тура) AS Количество FROM Заказы WHERE Сотрудники.Код_сотрудника=Заказы.Код_сотрудника)
FROM Сотрудники
WHERE (((Заказы.Дата_оформления) Between [Введите начальную дату:] And [Введите конечную дату:]))
ORDER BY 4 DESC;

так я пробовал, он выдает пустые строки...

Неактивен

 

#4 12.05.2010 00:55:50

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: помогите избавиться от inner join

Access это не MySQL smile

И почему при изменении запроса в форме требуется вводить ещё и Заказы.Дата_оформления для меня загадка.

Неактивен

 

#5 12.05.2010 15:14:33

arxangelvip
Участник
Зарегистрирован: 12.05.2010
Сообщений: 4

Re: помогите избавиться от inner join

эх, похоже никто не ответит

Неактивен

 

#6 12.05.2010 15:25:41

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: помогите избавиться от inner join

На этом форуме — вряд ли (Access действительно сильно отличается от MySQL).
Кроме того — на любом форуме — Вам не ответят, если Вы не будете приводить
полный текст сообщений об ошибках.

Неактивен

 

#7 12.05.2010 15:38:43

arxangelvip
Участник
Зарегистрирован: 12.05.2010
Сообщений: 4

Re: помогите избавиться от inner join

так ошибок там и нет, нужно просто inner join заменить на что то или как то убрать. лан все равно спасибо. пойду на другие форумы

Неактивен

 

#8 12.05.2010 15:49:22

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: помогите избавиться от inner join

INNER JOIN можно легко заменить на запятую. Т.е. следующие два запроса
полностью идентичны:

SELECT … FROM a JOIN b ON a.field = b.otherfield;
SELECT … FROM a, b WHERE a.field = b.otherfield;

С внешними (в Вашем случае — левым) объединениями такая штука, к сожалению,
не работает, т.к. теряются строки, находящиеся только в левой таблице.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson