 |
 |
Форум сетевых администраторов » Базы данных » MySQL » Как заменить Union?...
| Автор |
| Тема |
 |
|
 |
|
|
|
Участник
Зарегистрирован: Aug 2002
Место проживания: Алма-Ата, Казахстан
Публикаций: 2
Статус:  |
Собственно такая задача...
есть две одинаковые по структуре таблицы...
скажем, нужно выбрать из них по строке и сделать одну таблицу...
самое простое - это сделать примерно следующее:
select *
from table1
where num=$x
union
select *
from table2
where num=$x
Но! MySQL не поддерживает Union до версии 4.0... Мне же доступна только 3.23... Целый день ломаю, как решить проблему красиво - но так и не придумал...
Есть идеи?
Спасибо!
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
14-04-2003 20:02 |
|
|
Участник+
|
| Попробуй вторую строку довавить с пом. Insert.... |
[сооб. #40988]
15-04-2003 12:45 |
|
|
Администратор
|
| используй . (точку) это уже служит для объеденения... |
[сооб. #41050]
15-04-2003 21:33 |
|
|
Участник+
|
| 2polo: нельзя ли ссылку в доку, где описана... |
[сооб. #41102]
16-04-2003 15:37 |
|
Участник+


Зарегистрирован: May 2002
Место проживания: Владимирская обл.|Москва
Публикаций: 165
Статус:  |
2polo: нельзя ли ссылку в доку, где описана "."?
2RoodWit: оператор "." мне не знаком, поэтому я бы в такой ситуации в пхп пользовался бы двумя запросами и array_merge
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
16-04-2003 15:37 |
|
|
Администратор
|
| да это я не то сказал, просто выборка с двух... |
[сооб. #41116]
16-04-2003 20:02 |
|
|
Участник+
|
| Ð_-э-э ну в классической теории реляционных... |
[сооб. #41122]
16-04-2003 21:06 |
|
Участник+


Зарегистрирован: May 2002
Место проживания: Владимирская обл.|Москва
Публикаций: 165
Статус:  |
Ð_-э-э ну в классической теории реляционных бд (точнее, в теории реляционной алгебры) есть такой оператор как union - объединение. Ð_то практически теоретико-множественное объединение множеств кортежей, единственно, что требуется, чтобы представления совпадали по типу. Т.е. в данном случае фактически нужно дописать вторую таблицу к концу первой - увеличив количество кортежей - затем исключить повторения и, наконец, произвести выборку по условию. Афаик средствами 3-го мускула это реализовать не получится, так что прийдется совмещать пхп (ну или какой-то другой язык) и бд.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
16-04-2003 21:06 |
|
|
STFW


Зарегистрирован: Jul 2002
Место проживания: Кольский п-ов
Публикаций: 305
Статус:  |
quote: Первоначальное сообщение от RoodWit
Собственно такая задача...
есть две одинаковые по структуре таблицы...
скажем, нужно выбрать из них по строке и сделать одну таблицу...
...SKIPPED...
Целый день ломаю, как решить проблему красиво - но так и не придумал...
А не проще сделать одну таблицу, раз они по структуре одинаковые? А если нужно разбить данные на две группы заведи дополнительное поле char(0) NULL или varchar(0) NULL Все что IS NULL это одна таблица, остальное="" (строка нулевой длинны) другая группа данных.
__________________
FAQ OFF
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
15-05-2003 12:14 |
|
|
Модератор
|
| Синтаксис SELECT позволяет во FROM перечислять... |
[сооб. #43999]
15-05-2003 16:15 |
|
|
Участник+
|
[QUOTE]Первоначальное сообщение от RaZEr
[B]Синтаксис... |
[сооб. #44003]
15-05-2003 16:30 |
|
Участник+


Зарегистрирован: May 2002
Место проживания: Владимирская обл.|Москва
Публикаций: 165
Статус:  |
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.
Ð_то не выборка из нескольких таблиц, а их соединение.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
15-05-2003 16:30 |
|
|
Модератор
|
| Что я уже немогу ответить не прочитав топик... |
[сооб. #44012]
15-05-2003 17:00 |
|
|
Участник+
|
Во, вот это - другой разговор =)))
вот только... |
[сооб. #44022]
15-05-2003 19:12 |
|
|
Модератор
|
| Ð_аботает начиная с 3.23.25. |
[сооб. #44025]
15-05-2003 19:27 |
|
|
|
Формат времени GMT. Текущее время 11:24.
|
Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения. |
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
|
|
|
|
| |
Page generated in 0.01191306 seconds (49.52% PHP - 50.48% MySQL) with 21 queries.
|
 |