# Главная
# О библиотеке

# Выбор дистрибутива
преимущества Linux/UNIX | основные дистрибутивы | серверный Linux | BSD | LiveCDs | прочее

# Установка и удаление программ
общие вопросы | каталоги софта | специальные случаи

# Настройка и работа
установка, загрузчики | настройка Linux | консоль | файловые системы | процессы | шеллы, русификация, коммандеры | виртуальные машины, эмуляторы

# X Window и оконные менеджеры
настройка X Window | GNOME | KDE | IceWM и др.

# Работа с текстами
редакторы | офис | шрифты, кодировки и русификация | преобразования текстовых файлов | LaTeX, SGML и др. | словари

# Графика
GIMP | фото | обработка изображений | форматы графических файлов

# Сети, администрирование
общие вопросы | Dialup & PPP | брандмауэры | маршрутизация | работа в Windows-сетях | веб-серверы | Apache | прокси-серверы | сетевая печать | прочее

# Программирование
GCC & GNU make | программирование в UNIX | графические библиотеки | Tcl | Perl | PHP | Java & C# | СУБД | CVS | прочее

# Ядро
# Мультимедиа
# Интернет
# Почта
# Безопасность
# Железо
# Разное

# Linux HowTo (как сделать)
# Книги и руководства
# Материалы на английском языке


MySQL The World's Most Popular Open Source Database # Online shop | Site map |  
CompanyProductsSupport & ConsultingTraining & CertificationDownloadsDocumentation
  BooksArticlesMailing ListsPresentationsOther Sites  
Search the MySQL manual:
MySQL Manual
  • A Проблемы и распространенные ошибки
    • A.5 Проблемы, относящиеся к запросам
      • A.5.1 Чувствительность к регистру при поиске
      • A.5.2 Проблемы с использованием столбцов типа DATE
      • A.5.3 Проблемы со значением NULL
      • A.5.4 Проблемы с alias
      • A.5.5 Удаление строк из взаимосвязанных таблиц
      • A.5.6 Решение проблем с отсутствием строк, удовлетворяющих условиям поиска
      • A.5.7 Проблемы со сравнением чисел с плавающей точкой

Buy this Reference Manual in softcover from Barnes & Noble!

MySQL Reference Manual
Previous / Next / Up / Table of Contents

A.5.4 Проблемы с alias

Псевдонимы можно использовать для ссылки на столбец в GROUP BY, ORDER BY или в части HAVING, а также для лучшего именования столбцов:

SELECT SQRT(a*b) as rt FROM table_name GROUP BY rt HAVING rt > 0;
SELECT id,COUNT(*) AS cnt FROM table_name GROUP BY id HAVING cnt > 0;
SELECT id AS "Customer identity" FROM table_name;

Заметим, что в ANSI SQL запрещено ссылаться на псевдоним в определении WHERE. Вызвано это тем, что при выполнении кода WHERE значение столбца может быть еще не определенным. Например, следующий запрос недопустим:

SELECT id,COUNT(*) AS cnt FROM table_name WHERE cnt > 0 GROUP BY id;

Выражение WHERE выполняется, чтобы определить, какие строки следует включить в часть GROUP BY, тогда как HAVING используется для тех строк из результирующего множества, которые должны использоваться.

User Comments

Posted by [name withheld] on Thursday June 6 2002, @4:24am[Delete] [Edit]

Can someone tell me how to work around the sub-select that is not possible in MYSQL 3.23.x just in MYSQL? I know that it is possible with JAVA/PERL/PHP/..-scripts and arrays-variables, but I want to avoid these scriptings!

# EXAMPLE TABLES AND VALUES
drop table if exists more, less;
create table more (id integer(6));
create table less (id integer(6));
insert into more values (1), (2), (3), (4), (5), (6), (7), (8);
insert into less values (1), (2), (3), (4);

# SELECT BEFORE
select id as more from more;
#+------+
#| more |
#+------+
#| 1 |
#| 2 |
#| 3 |
#| 4 |
#| 5 |
#| 6 |
#| 7 |
#| 8 |
#+------+
select id as less from less;
#+------+
#| less |
#+------+
#| 1 |
#| 2 |
#| 3 |
#| 4 |
#+------+

#NOT POSSIBLE WITH MYSQL 3.23.x:
#delete from more where id not in (select id from less);

#WITH HARD-CODED VALUES IT WOULD BE:
delete from more where id not in (1, 2, 3, 4);

# SELECT AFTER
select id as more from more;
#+------+
#| more |
#+------+
#| 1 |
#| 2 |
#| 3 |
#| 4 |
#+------+

select id as less from less;
#+------+
#| less |
#+------+
#| 1 |
#| 2 |
#| 3 |
#| 4 |
#+------+

Add your own comment.

Top / Previous / Next / Up / Table of Contents
# MySQL.com home | Site map | Contact us | Press | Jobs | Privacy policy | Trademark info | © 1995-2003 MySQL AB. All rights reserved.