![]() |
Показаны 12 сообщений на этой странице |
Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- MySQL (http://netadmin.ws/forum/forumdisplay.php?forumid=40)
-- Как заменить Union?... (http://netadmin.ws/forum/showthread.php?threadid=5109)
Как заменить Union?...
Собственно такая задача...
есть две одинаковые по структуре таблицы...
скажем, нужно выбрать из них по строке и сделать одну таблицу...
самое простое - это сделать примерно следующее:
select *
from table1
where num=$x
union
select *
from table2
where num=$x
Но! MySQL не поддерживает Union до версии 4.0... Мне же доступна только 3.23... Целый день ломаю, как решить проблему красиво - но так и не придумал...
Есть идеи?
Спасибо!
Попробуй вторую строку довавить с пом. Insert.
__________________
Тест - проверка верности!
используй . (точку) это уже служит для объеденения таблиц.
__________________
Всегда есть решение.
2polo: нельзя ли ссылку в доку, где описана "."?
2RoodWit: оператор "." мне не знаком, поэтому я бы в такой ситуации в пхп пользовался бы двумя запросами и array_merge
да это я не то сказал, просто выборка с двух таблиц я не понимаю в чем тут проблема.
__________________
Всегда есть решение.
Ð_-э-э ну в классической теории реляционных бд (точнее, в теории реляционной алгебры) есть такой оператор как union - объединение. Ð_то практически теоретико-множественное объединение множеств кортежей, единственно, что требуется, чтобы представления совпадали по типу. Т.е. в данном случае фактически нужно дописать вторую таблицу к концу первой - увеличив количество кортежей - затем исключить повторения и, наконец, произвести выборку по условию. Афаик средствами 3-го мускула это реализовать не получится, так что прийдется совмещать пхп (ну или какой-то другой язык) и бд.
Re: Как заменить Union?...
quote:
Первоначальное сообщение от RoodWit
Собственно такая задача...
есть две одинаковые по структуре таблицы...
скажем, нужно выбрать из них по строке и сделать одну таблицу...
...SKIPPED...
Целый день ломаю, как решить проблему красиво - но так и не придумал...
__________________
FAQ OFF
Синтаксис SELECT позволяет во FROM перечислять столько таблиц, сколько нужно.
__________________
The time was broken ...
quote:Нет.
Первоначальное сообщение от RaZEr
Синтаксис SELECT позволяет во FROM перечислять столько таблиц, сколько нужно.
quote:Ð_то не выборка из нескольких таблиц, а их соединение.
The FROM table_references clause indicates the tables from which to retrieve rows. If you name more than one table, you are performing a join.
Что я уже немогу ответить не прочитав топик 
Про union:
CREATE TABLE t1 (a INT AUTO_INCREMENT PRIMARY KEY, message CHAR(20));
CREATE TABLE t2 (a INT AUTO_INCREMENT PRIMARY KEY, message CHAR(20));
INSERT INTO t1 (message) VALUES ("Testing"),("table"),("t1");
INSERT INTO t2 (message) VALUES ("Testing"),("table"),("t2");
CREATE TABLE total (a INT NOT NULL, message CHAR(20), KEY(a)) TYPE=MERGE UNION=(t1,t2);__________________
The time was broken ...
Во, вот это - другой разговор =)))
вот только в документации на версию 3.23* я такого тоже не нашел =(
Ð_аботает начиная с 3.23.25.
__________________
The time was broken ...
| Формат времени GMT. Текущее время 11:28. | Показаны 12 сообщений на этой странице |
Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.