|
|
|
|
|
для: 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". | |
|
|
|
|
|
|
|
для: 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 |
+----------+--------+
|
| |
|
|
|
|
|
|
| Есть таблица, в шапке которой три колонки: 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" - это псеводним. Но че то я не пойму никак, как этим псеводнимом пользоваться. Кто может объяснить? | |
|
|
|
|