Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Помогите понять смысл запроса

Сообщения:  [1-3] 

 
 автор: Mastodont   (27.02.2007 в 21:12)   письмо автору
 
   для: mesos   (27.02.2007 в 00:02)
 

Ага, спс, немного разобрался ) А то ваще не доходило ))
А тот запрос, про который я спрашивал, к этой таблице:

+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
|    0001 | A      |  3.45 |
|    0001 | B      |  3.99 |
|    0002 | A      | 10.99 |
|    0003 | B      |  1.45 |
|    0003 | C      |  1.69 |
|    0003 | D      |  1.25 |
|    0004 | D      | 19.95 |
+---------+--------+-------+

Надо выбрать дилера (dealer) с самыми высокими ценами (price) для каждого изделия (article).
Это пример из "Справочного руководства по MySQL 4.0".

   
 
 автор: mesos   (27.02.2007 в 00:02)   письмо автору
 
   для: Mastodont   (26.02.2007 в 22:44)
 

Не претендую на полный ответ, но:

Псевдонимы используются при выполнении объединений и для удобства вывода данных.
В данном запросе s1 и s2 - псевдонимы одной таблицы shop. Т.е. происходит самообъединение (по сути тут получаются две таблицы с одинаковым содержимым).
Запросы вроде этого используются обычно для поиска связей между записями одной таблицы.
При обращении к s1.article (и к s2.article тоже) в действительности происходит обращение к shop.article.

В простых запросах можно использовать псевдонимы для столбцов или результатов выражений,
например выполнив такой запрос:

SELECT id, round(price * 28.4) as total FROM shop;

Получим примерно такой результат:

+----------+--------+
|   id     | total  |
+----------+--------+
|   234    | 3023   |
|   273    | 1337   |
|   325    | 4279   |
+----------+--------+

   
 
 автор: Mastodont   (26.02.2007 в 22:44)   письмо автору
 
 

Есть таблица, в шапке которой три колонки: article, dealer и price. В первой строке запроса выбираем, какие колонки выводить, во второй - из какой таблицы эти колонки выводить.

SELECT article, dealer, price
FROM shop s1
WHERE price=(SELECT MAX(s2.price)
FROM shop s2
WHERE s1.article = s2.article);

Таблица называется "shop", но че за "s1" рядом с ней, никак не пойму. Там, где этот запрос приведен, написано, что "s1" - это псеводним. Но че то я не пойму никак, как этим псеводнимом пользоваться. Кто может объяснить?

   

Сообщения:  [1-3] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования