| |
|
|
| | Привет всем!!!
Имеюся две таблицы 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
|
| |
| |
|
|