VirtualIreland.ru - Виртуальная Ирландия
Вернуться   VirtualIreland.ru - Виртуальная Ирландия > Живем в Ирландии > IT и Связь

IT и Связь Обсуждение "айтишных" вопросов и средств связи

Ответ
 
Опции темы Опции просмотра
Старый 28.04.2010, 16:06   #16
Заслуженный Участник
 
Аватар для Epo
 
Откуда: Darnassus
Сообщений: 1,449
Благодарности: 689 в 375 сообщениях Поиск благодарностей Epo
По умолчанию Re: SQL вопросик

Цитата:
Сообщение от limon877 Посмотреть сообщение
SELECT drug_code, drug_name
FROM drug d1
WHERE price < (SELECT MAX(price) FROM drug d2 WHERE d1.type=d2.type)
Вроде как можно переписать так
Цитата:
SELECT d1.drug_code, d1.drug_name, max(d2.price)
FROM drug d1
LEFT JOIN drug d2
ON d2.price > d1.price
WHERE d1.type=d2.type
GROUP BY d2.price
Epo добавил 28.04.2010 в 17:07
Цитата:
Сообщение от vc Посмотреть сообщение
SELECT drug_code, drug_name
FROM drug d1, drug d2
WHERE d1.type = d2.type
AND d1.price < d2.price
ORDER BY drug_code, drug_name;
эх, почти опередил =)

Последний раз редактировалось Epo, 28.04.2010 в 16:07. Причина: Добавлено сообщение
Epo вне форума   Ответить с цитированием

Зарегистрируйтесь или войдите под своим именем, чтобы спрятать этот рекламный блок
Старый 28.04.2010, 16:09   #17
Спам-робот
 
Аватар для YellowMan
 
Откуда: Dublin<->Брянск
Сообщений: 21,268
Благодарности: 11,080 в 5,139 сообщениях Поиск благодарностей YellowMan
По умолчанию Re: SQL вопросик

Цитата:
Сообщение от vc Посмотреть сообщение
ELECT drug_code, drug_name
FROM drug d1, drug d2
WHERE d1.type = d2.type
AND d1.price < d2.price
ORDER BY drug_code, drug_name;
Близко, да. Не мешай студенту учиться.
__________________
My Church is Black...
YellowMan вне форума   Ответить с цитированием
Старый 28.04.2010, 16:15   #18
Спам-робот
 
Аватар для vc
 
Сообщений: 31,257
Благодарности: 21,993 в 10,697 сообщениях Поиск благодарностей vc
По умолчанию Re: SQL вопросик

Цитата:
Сообщение от YellowMan Посмотреть сообщение
Близко, да. Не мешай студенту учиться.
Я сам учусь

vc добавил 28.04.2010 в 17:18
Цитата:
Сообщение от Epo Посмотреть сообщение
ON d2.price > d1.price
WHERE d1.type=d2.type
А оба условия нельзя загнать в "ON"?

Последний раз редактировалось vc, 28.04.2010 в 16:18. Причина: Добавлено сообщение
vc вне форума   Ответить с цитированием
Старый 28.04.2010, 18:03   #19
Заслуженный Участник
 
Аватар для Epo
 
Откуда: Darnassus
Сообщений: 1,449
Благодарности: 689 в 375 сообщениях Поиск благодарностей Epo
По умолчанию Re: SQL вопросик

Цитата:
Сообщение от vc Посмотреть сообщение
А оба условия нельзя загнать в "ON"?
Ты имеешь ввиду так?
Цитата:
ON d2.price > d1.price AND d1.type=d2.type
Если так, то нельзя. А вот если использовать просто JOIN вместо LEFT JOIN, то можно и пихнуть в ON
Epo вне форума   Ответить с цитированием
Старый 28.04.2010, 18:26   #20
Просто Зануда
 
Аватар для tadpole
 
Сообщений: 7,099
Благодарности: 4,110 в 1,743 сообщениях Поиск благодарностей tadpole
По умолчанию Re: SQL вопросик

Цитата:
Сообщение от svu Посмотреть сообщение
Вот вечно эти дазо-банщики! Никакого уважения к портируемости кода! Хлебом не корми - дай поюзать проприетарные фенечки!
Поверь мне, если придётся портироваться с одной РСУБД на другую, проблемы совместимости SQL будут далеко не на первом месте.
__________________
The misuse of language induces evil in the soul © Socrates

tadpole вне форума   Ответить с цитированием
Старый 28.04.2010, 23:11   #21
Участник
 
Сообщений: 94
Благодарности: 37 в 23 сообщениях Поиск благодарностей limon877
По умолчанию Re: SQL вопросик

Спасибо всем за ваши советы , очень помогли,
хотя ни один ответ не дал точного результата
limon877 вне форума   Ответить с цитированием
Старый 29.04.2010, 07:07   #22
Заслуженный Участник
 
Аватар для Epo
 
Откуда: Darnassus
Сообщений: 1,449
Благодарности: 689 в 375 сообщениях Поиск благодарностей Epo
По умолчанию Re: SQL вопросик

Цитата:
Сообщение от limon877 Посмотреть сообщение
хотя ни один ответ не дал точного результата
Я не знаю как вы проверяли работоспособность запросов, но мой запрос выдаёт те же данные как и ваш оригинальный. Ошибка закралась где-то у вас =)
Epo вне форума   Ответить с цитированием
Старый 29.04.2010, 08:47   #23
READ ONLY
 
Аватар для AlexL
 
Сообщений: 3,156
Благодарности: 1,856 в 929 сообщениях Поиск благодарностей AlexL
Отправить сообщение для  AlexL с помощью ICQ
По умолчанию Re: SQL вопросик

Цитата:
Сообщение от Epo Посмотреть сообщение
Я не знаю как вы проверяли работоспособность запросов, но мой запрос выдаёт те же данные как и ваш оригинальный. Ошибка закралась где-то у вас =)
Epo, Ваш запрос вообще работать не будет
__________________
Хотели всё и сразу, а получили ничего и надолго.
[url=http://www.visited.ru][img]http://www.visited.ru/flagmap.php?visited=ATBEBGCZFRDEIEITMTNLRUESUKVATR[/img][/url]
AlexL вне форума   Ответить с цитированием
Старый 29.04.2010, 09:38   #24
Заслуженный Участник
 
Сообщений: 764
Благодарности: 455 в 218 сообщениях Поиск благодарностей Deserved
По умолчанию Re: SQL вопросик

Потому что должно быть:


SELECT d1.drug_code, d1.drug_name, max(d1.price)
FROM drug d1
LEFT JOIN drug d2
ON d1.type=d2.type
WHERE d1.price < d2.price
GROUP BY d1.type;
Deserved вне форума   Ответить с цитированием
Старый 29.04.2010, 09:56   #25
READ ONLY
 
Аватар для AlexL
 
Сообщений: 3,156
Благодарности: 1,856 в 929 сообщениях Поиск благодарностей AlexL
Отправить сообщение для  AlexL с помощью ICQ
По умолчанию Re: SQL вопросик

Цитата:
Сообщение от Deserved Посмотреть сообщение
Потому что должно быть:


SELECT d1.drug_code, d1.drug_name, max(d1.price)
FROM drug d1
LEFT JOIN drug d2
ON d1.type=d2.type
WHERE d1.price < d2.price
GROUP BY d1.type;
все еще неверно. подсказка: группировка должна быть по полям в select.
__________________
Хотели всё и сразу, а получили ничего и надолго.
[url=http://www.visited.ru][img]http://www.visited.ru/flagmap.php?visited=ATBEBGCZFRDEIEITMTNLRUESUKVATR[/img][/url]
AlexL вне форума   Ответить с цитированием
Старый 29.04.2010, 09:59   #26
Спам-робот
 
Аватар для YellowMan
 
Откуда: Dublin<->Брянск
Сообщений: 21,268
Благодарности: 11,080 в 5,139 сообщениях Поиск благодарностей YellowMan
По умолчанию Re: SQL вопросик

Цитата:
Сообщение от Deserved Посмотреть сообщение
SELECT d1.drug_code, d1.drug_name, max(d1.price)
FROM drug d1
LEFT JOIN drug d2
ON d1.type=d2.type
WHERE d1.price < d2.price
GROUP BY d1.type;
Это, если запустить прямо вот так - выдаст ошибку


limon877,
Давайте, показывайте до чего додумались vc ближе всех подошел к пониманию того как складываются таблицы, связанные не по знаку равенства

А AlexL-а не слушайте, он вообще вне конкурса идет - если и второй запрос переписать без AVG() то у вашего учителя настанет скоропостижный разрыв стереотипов
__________________
My Church is Black...
YellowMan вне форума   Ответить с цитированием
Старый 29.04.2010, 10:06   #27
Заслуженный Участник
 
Сообщений: 764
Благодарности: 455 в 218 сообщениях Поиск благодарностей Deserved
По умолчанию Re: SQL вопросик

Цитата:
Сообщение от YellowMan Посмотреть сообщение
Это, если запустить прямо вот так - выдаст ошибку
MySQL работает ровно )))

Так чтоли:

SELECT d1.drug_code, d1.drug_name, d1.price FROM drug d1 JOIN drug d2 ON
d1.type=d2.type AND d1.price < d2.price GROUP BY d1.type;
Deserved вне форума   Ответить с цитированием
Старый 29.04.2010, 11:28   #28
Спам-робот
 
Аватар для YellowMan
 
Откуда: Dublin<->Брянск
Сообщений: 21,268
Благодарности: 11,080 в 5,139 сообщениях Поиск благодарностей YellowMan
По умолчанию Re: SQL вопросик

Цитата:
Сообщение от Deserved Посмотреть сообщение
MySQL работает ровно )))

Так чтоли:

SELECT d1.drug_code, d1.drug_name, d1.price FROM drug d1 JOIN drug d2 ON
d1.type=d2.type AND d1.price < d2.price GROUP BY d1.type;
Остается только порадоваться незамутненности сознания создателей MySQL-а, позволяющим писать что-то подобное SELECT d1.drug_code ... GROUP BY d1.type
__________________
My Church is Black...
YellowMan вне форума   Ответить с цитированием

Зарегистрируйтесь или войдите под своим именем, чтобы спрятать этот рекламный блок
Старый 29.04.2010, 11:59   #29
Участник
 
Сообщений: 94
Благодарности: 37 в 23 сообщениях Поиск благодарностей limon877
По умолчанию Re: SQL вопросик

Цитата:
Сообщение от Deserved Посмотреть сообщение
MySQL работает ровно )))

Так чтоли:

SELECT d1.drug_code, d1.drug_name, d1.price FROM drug d1 JOIN drug d2 ON
d1.type=d2.type AND d1.price < d2.price GROUP BY d1.type;

По идее это не должно работать потому-что те columns которые входят в GROUP BY clause должны входить и в SELECT clause(кроме agregate functions).
Но я не знаю как работает My- SQL

limon877 добавил 29.04.2010 в 13:07
Цитата:
Сообщение от YellowMan Посмотреть сообщение
limon877,
Давайте, показывайте до чего додумались vc ближе всех подошел к пониманию того как складываются таблицы, связанные не по знаку равенства
Я ничего путного так и не напридумал( с SQL-language знаком всего лишь пару месяцев). Если ви снезойёте до нас нообов и покажете чего нибудь нормального

Последний раз редактировалось limon877, 29.04.2010 в 12:07. Причина: Добавлено сообщение
limon877 вне форума   Ответить с цитированием
Старый 29.04.2010, 12:13   #30
Спам-робот
 
Аватар для YellowMan
 
Откуда: Dublin<->Брянск
Сообщений: 21,268
Благодарности: 11,080 в 5,139 сообщениях Поиск благодарностей YellowMan
По умолчанию Re: SQL вопросик

Я не поплевываю на нубов с колокольни великих знаний а пытаюсь помочь вам думать самостоятельно
Пробовали уже left join со знаком "<" ? Посмотрели на результат? Ничего странного не заметили? Слово distinct знаете?
__________________
My Church is Black...
YellowMan вне форума   Ответить с цитированием
Ответ



Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать на сообщения
Вы не можете добавлять вложения
Вы не можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщ.
Вопросик Asiza Вопросы и предложения 13 13.02.2010 21:44
Вопросик! ProGameR Автотранспорт 14 31.01.2010 20:59
вопросик Ратобор Вопросы и предложения 5 25.01.2010 16:03
вопросик. xandrey Иммиграция 9 15.12.2009 21:31
Вопросик Irinak Работа в Ирландии 12 20.01.2006 11:20


Часовой пояс GMT, времени сейчас: 13:07.


vBulletin®, Copyright ©2000-2025, Jelsoft Enterprises Ltd., Русификация: zCarot, Vovan & Co
©2003-2025 VirtualIreland.ru - Виртуальная Ирландия