|
|
|
| Привет всем!!!
Имеюся две таблицы object и hidden_object с одинаковыми полями id и id_author
Мне надо выбрать минимальный id с обеих таблиц
Подскажите пожалуйста в чем разница этих двух запросов:
$query="SELECT id FROM object WHERE id_author='".$_SESSION['author']."' LIMIT 0,1 UNION
SELECT id FROM hidden_object WHERE id_author='".$_SESSION['author']."' ORDER BY id ASC LIMIT 0,1";
|
и
$query="SELECT src.id FROM ".
"(SELECT id FROM object WHERE id_realtor='".$_SESSION['realtor']."' LIMIT 0,1 ".
"UNION SELECT id FROM hidden_object WHERE id_realtor='".$_SESSION['realtor']."' ".
"ORDER BY id ASC LIMIT 0,1) as src ORDER BY id ASC LIMIT 0,1";
|
Заранее спасибо | |
|
|
|
|
|
|
|
для: Roma
(24.07.2007 в 17:17)
| | во втором запросе у тебя используется алиас, то есть запрос к нескольким таблицам с помощью ключевого слова AS объединяется в один выведется результат в одно поле src. Вобщем я понимаю в чё разница, но объяснить только так могу=) | |
|
|
|
|
|
|
|
для: Roma
(24.07.2007 в 17:17)
| | Могу написать, что в них общего. В обоих ошибки.
В частности инструкция LIMIT действует не на SELECT а на результат. И пишется ОДИН раз на вызов. | |
|
|
|
|
|
|
|
для: Trianon
(24.07.2007 в 18:56)
| | А так тоже не правильно:
$query="SELECT id FROM object WHERE id_author='".$_SESSION['author']."' UNION
SELECT id FROM hidden_object WHERE id_author='".$_SESSION['author']."' ORDER BY id ASC LIMIT 0,1";
//и
$query="SELECT src.id FROM (SELECT id FROM object WHERE id_author='".$_SESSION['author']."' UNION
SELECT id FROM hidden_object WHERE id_author='".$_SESSION['author']."' ) as src ORDER BY id ASC
LIMIT 0,1";
|
| |
|
|
|
|
|
|
|
для: Roma
(24.07.2007 в 19:09)
| | Конечно.
Для извлечения минимального значения существует агрегатная функция MIN() | |
|
|
|
|
|
|
|
для: Trianon
(24.07.2007 в 19:10)
| | а не могли бы вы показать как сделать правильно? | |
|
|
|
|
|
|
|
для: Roma
(24.07.2007 в 20:46)
| | Правильно независимые минимумы разных таблиц получать двумя независимыми запросами. | |
|
|
|
|
|
|
|
для: Roma
(24.07.2007 в 19:09)
| |
SELECT id FROM object
WHERE id =
( SELECT MIN(id)
FROM object );
|
| |
|
|
|
|
|
|
|
для: oradev
(24.07.2007 в 20:44)
| | А в случае с двумя таблицами?
Это тоже не верно
$query="SELECT MIN(src.id) FROM (SELECT MIN(id) FROM object WHERE id_author='".$_SESSION['author']."' UNION
SELECT MIN(id) FROM hidden_object WHERE id_author='".$_SESSION['author']."' ) as src ";
|
| |
|
|
|
|
|
|
|
для: Roma
(24.07.2007 в 20:54)
| | Ну на ваш стиль:
SELECT o.min_value FROM (SELECT MIN(id) as min_value FROM object) o;
|
А вообще все проще:
SELECT MIN(id) as min_value FROM object
|
Также сделаете 2-ой запрос и UNION между ними | |
|
|
|
|
|
|
|
для: oradev
(24.07.2007 в 20:44)
| | о да... ))
SELECT MIN(id)
FROM object
|
| |
|
|
|