Общие > Базы данных
Добавление скобок при объединении(union) 2-х таблиц
win_pup:
просто беру любую из таблиц и выполняю:
select * from
работает!...
Обставляю всё это дело скобками:
(select * from )
не работает!... :-(
fidget:
Повторяю еще раз: приведи пример!
У меня для любой таблицы все работает замечательно.
mysql> create table u1(
-> id int);
Query OK, 0 rows affected (0.16 sec)
mysql> create table u2(
-> id int);
Query OK, 0 rows affected (0.01 sec)
mysql> insert into u1 values(1),(2),(3);
Query OK, 3 rows affected (0.04 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> insert into u2 values(4),(5),(6);
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> (select * from u1);
+------+
| id |
+------+
| 1 |
| 2 |
| 3 |
+------+
3 rows in set (0.00 sec)
mysql> (select * from u1) union (select * from u2);
+------+
| id |
+------+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
+------+
6 rows in set (0.15 sec)
win_pup:
--- Цитировать ---win_pup, во первых тестировать надо в первую очередь консольным клиентом, а не ГУИшными.
--- Конец цитаты ---
действительно, через консольный интерфейс всё замечательно выполняется...
и в PHP тоже работает, но не совсем...
но, я так понял, тут не PHP виноват а синтаксис не позволяет (проверял в консольном):
запрос
insert into tmp select * from table1 union all select * from table2
работает замечательно, а вот тот же запрос но со скобками
insert into tmp (select * from table1) union all (select * from table2)
уже не работает... :-(
я прав?...
fidget:
insert into tmp select * from u1 union all (select * from u2);
работает отлично, а то что не работает у тебя
insert into tmp (select * from table1) ...
так это у тебя синтаксис INSERT ... SELECT неправильный и к UNION не имеет ни малейшего отношения :-)
win_pup:
> fidget
верно!...
без скобок в первом select`е всё замечательно работает!... :)
Вроде бы немного разобрался, спасибо!... ;)
и вот мне ещё интересно, к этому union`у никак нельзя применить группировку (group by ... )?
Навигация
Перейти к полной версии