|
|
|
| Делаю запрос, например:
<?php
$sql = mysql_query("SELECT `id` FROM `forum_9` UNION ALL SELECT `id` FROM `forum_17` UNION ALL SELECT `id` FROM `forum_10` WHERE `id` = 0 ORDER BY `id` DESC;");
?>
|
Вроде бы должно вернуть 0 рядов (id = 0 не существует), но возвращает все ID'ы с этих трех таблиц. А как "отсеить" информацию с помощью WHERE в данном случае? | |
|
|
|
|
|
|
|
для: Unkind
(28.12.2006 в 15:25)
| | Ну ладно, как тогда сделать многотабличный запрос, чтобы СУБД возвращала столбцы с N-ого количества однотипных таблиц? ;) | |
|
|
|
|
|
|
|
для: Unkind
(28.12.2006 в 20:46)
| | Точно также, как и в случае однотабличного запроса, используя ключевое слово LIMIT. | |
|
|
|
|
|
|
|
для: cheops
(28.12.2006 в 20:57)
| | У меня не получается создать сам запрос, чтобы СУБД вернула, например:
id | username |
--- Данные из таблицы 'table1' ---
1 | admin
2 | moderator |
--- Данные из таблицы 'table2' ---
3 | root |
4 | tester |
--- И т.д. ---
|
Ну пробовал через UNION SELECT, как вверху, но делается выборка всех данные без разбора :( | |
|
|
|
|
|
|
|
для: Unkind
(28.12.2006 в 22:01)
| | Хм... а вы обязательно хотите в один запрос уложиться? Может проще будет для каждой из таблиц сформировать свой собственный запрос? | |
|
|
|
|
|
|
|
для: cheops
(28.12.2006 в 23:12)
| | Я делаю форум, там я сделал для каждого подфорума свою таблицу для сообщений. Теперь, чтобы сделать поиск по сообщениям в нескольких подфорумах мне нужно именно в один запрос уложится. | |
|
|
|
|
|
|
|
для: Unkind
(28.12.2006 в 23:40)
| | > ...я сделал для каждого подфорума свою таблицу...
Зря.Нужно было всего лишь поле с идентификатором форума добавить.
У Вас WHERE относится к ближайшему (читай - последнему) SELECT.
И если Вы хотите фильтровать все селекты, а не только последний,
Вам нужно WHERE писать после каждого.
Перед соответствующим UNION. | |
|
|
|
|
|
|
|
для: Trianon
(30.12.2006 в 14:04)
| | А, пасиба :)) Тогда все OK | |
|
|
|