Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
netadmin.ws
Панель управления Регистрция свободна! Календарь Список пользователей Часто задаваемые вопросы Поиск по форуму Архив скриптов Главная   
Форум сетевых администраторов
Форум сетевых администраторов Форум сетевых администраторов » Базы данных » MySQL » Как заменить Union?...
Предыдущая тема     Следующая тема
Автор
Тема    Новая тема     Ответить на эту тему
RoodWit
Участник

Зарегистрирован: Aug 2002
Место проживания: Алма-Ата, Казахстан
Публикаций: 2
Статус: RoodWit в оф-лайне
Как заменить Union?... [сообщение #40930]

Собственно такая задача...

есть две одинаковые по структуре таблицы...

скажем, нужно выбрать из них по строке и сделать одну таблицу...

самое простое - это сделать примерно следующее:

select *
from table1
where num=$x
union
select *
from table2
where num=$x

Но! MySQL не поддерживает Union до версии 4.0... Мне же доступна только 3.23... Целый день ломаю, как решить проблему красиво - но так и не придумал...

Есть идеи?

Спасибо!

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 14-04-2003 20:02
Нажмите сюда для просмотра профайла RoodWit Отправить Персональное сообщение RoodWit Посетить домашнию страничку RoodWit! Найти сообщения от RoodWit Добавить RoodWit в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Viktor
Участник+
Средний рейтинг: 4.89 | Оценок: 19
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Jun 2002
Место проживания: Украина
Публикаций: 617
Статус: Viktor в оф-лайне
[сообщение #40988]

Попробуй вторую строку довавить с пом. Insert.

__________________
Тест - проверка верности!

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 15-04-2003 12:45
Нажмите сюда для просмотра профайла Viktor Отправить Персональное сообщение Viktor Посетить домашнию страничку Viktor! Найти сообщения от Viktor Добавить Viktor в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
polo
Администратор
Средний рейтинг: 4.77 | Оценок: 106
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус: polo в оф-лайне
[сообщение #41050]

используй . (точку) это уже служит для объеденения таблиц.

__________________
Всегда есть решение.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 15-04-2003 21:33
Нажмите сюда для просмотра профайла polo Отправить Персональное сообщение polo Посетить домашнию страничку polo! Найти сообщения от polo Добавить polo в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Rumata
Участник+
Средний рейтинг: 4.5 | Оценок: 12
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: May 2002
Место проживания: Владимирская обл.|Москва
Публикаций: 165
Статус: Rumata в оф-лайне
[сообщение #41102]

2polo: нельзя ли ссылку в доку, где описана "."?
2RoodWit: оператор "." мне не знаком, поэтому я бы в такой ситуации в пхп пользовался бы двумя запросами и array_merge

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 16-04-2003 15:37
Нажмите сюда для просмотра профайла Rumata Отправить Персональное сообщение Rumata Посетить домашнию страничку Rumata! Найти сообщения от Rumata Добавить Rumata в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
polo
Администратор
Средний рейтинг: 4.77 | Оценок: 106
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус: polo в оф-лайне
[сообщение #41116]

да это я не то сказал, просто выборка с двух таблиц я не понимаю в чем тут проблема.

__________________
Всегда есть решение.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 16-04-2003 20:02
Нажмите сюда для просмотра профайла polo Отправить Персональное сообщение polo Посетить домашнию страничку polo! Найти сообщения от polo Добавить polo в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Rumata
Участник+
Средний рейтинг: 4.5 | Оценок: 12
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: May 2002
Место проживания: Владимирская обл.|Москва
Публикаций: 165
Статус: Rumata в оф-лайне
[сообщение #41122]

Ð_-э-э ну в классической теории реляционных бд (точнее, в теории реляционной алгебры) есть такой оператор как union - объединение. Ð_то практически теоретико-множественное объединение множеств кортежей, единственно, что требуется, чтобы представления совпадали по типу. Т.е. в данном случае фактически нужно дописать вторую таблицу к концу первой - увеличив количество кортежей - затем исключить повторения и, наконец, произвести выборку по условию. Афаик средствами 3-го мускула это реализовать не получится, так что прийдется совмещать пхп (ну или какой-то другой язык) и бд.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 16-04-2003 21:06
Нажмите сюда для просмотра профайла Rumata Отправить Персональное сообщение Rumata Посетить домашнию страничку Rumata! Найти сообщения от Rumata Добавить Rumata в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
SCHIZO
STFW
Средний рейтинг: 5 | Оценок: 8
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Jul 2002
Место проживания: Кольский п-ов
Публикаций: 305
Статус: SCHIZO в оф-лайне
Re: Как заменить Union?... [сообщение #43969]

quote:
Первоначальное сообщение от RoodWit
Собственно такая задача...

есть две одинаковые по структуре таблицы...
скажем, нужно выбрать из них по строке и сделать одну таблицу...

...SKIPPED...

Целый день ломаю, как решить проблему красиво - но так и не придумал...



А не проще сделать одну таблицу, раз они по структуре одинаковые? А если нужно разбить данные на две группы заведи дополнительное поле char(0) NULL или varchar(0) NULL Все что IS NULL это одна таблица, остальное="" (строка нулевой длинны) другая группа данных.

__________________
FAQ OFF

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 15-05-2003 12:14
Нажмите сюда для просмотра профайла SCHIZO Отправить Персональное сообщение SCHIZO Посетить домашнию страничку SCHIZO! Найти сообщения от SCHIZO Добавить SCHIZO в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
RaZEr
Модератор
Средний рейтинг: 4.19 | Оценок: 16
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2002
Место проживания: Россия
Публикаций: 769
Статус: RaZEr в оф-лайне
[сообщение #43999]

Синтаксис SELECT позволяет во FROM перечислять столько таблиц, сколько нужно.

__________________
The time was broken ...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 15-05-2003 16:15
Нажмите сюда для просмотра профайла RaZEr Отправить Персональное сообщение RaZEr Найти сообщения от RaZEr Добавить RaZEr в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Rumata
Участник+
Средний рейтинг: 4.5 | Оценок: 12
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: May 2002
Место проживания: Владимирская обл.|Москва
Публикаций: 165
Статус: Rumata в оф-лайне
[сообщение #44003]

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: определен

Old Post 15-05-2003 16:30
Нажмите сюда для просмотра профайла Rumata Отправить Персональное сообщение Rumata Посетить домашнию страничку Rumata! Найти сообщения от Rumata Добавить Rumata в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
RaZEr
Модератор
Средний рейтинг: 4.19 | Оценок: 16
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2002
Место проживания: Россия
Публикаций: 769
Статус: RaZEr в оф-лайне
[сообщение #44012]

Что я уже немогу ответить не прочитав топик

Про union:

code:

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 ...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 15-05-2003 17:00
Нажмите сюда для просмотра профайла RaZEr Отправить Персональное сообщение RaZEr Найти сообщения от RaZEr Добавить RaZEr в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Rumata
Участник+
Средний рейтинг: 4.5 | Оценок: 12
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: May 2002
Место проживания: Владимирская обл.|Москва
Публикаций: 165
Статус: Rumata в оф-лайне
[сообщение #44022]

Во, вот это - другой разговор =)))
вот только в документации на версию 3.23* я такого тоже не нашел =(

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 15-05-2003 19:12
Нажмите сюда для просмотра профайла Rumata Отправить Персональное сообщение Rumata Посетить домашнию страничку Rumata! Найти сообщения от Rumata Добавить Rumata в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
RaZEr
Модератор
Средний рейтинг: 4.19 | Оценок: 16
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2002
Место проживания: Россия
Публикаций: 769
Статус: RaZEr в оф-лайне
[сообщение #44025]

Ð_аботает начиная с 3.23.25.

__________________
The time was broken ...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 15-05-2003 19:27
Нажмите сюда для просмотра профайла RaZEr Отправить Персональное сообщение RaZEr Найти сообщения от RaZEr Добавить RaZEr в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя



Формат времени GMT. Текущее время 10:37.
Новая тема   Ответить на эту тему [ Версия для печати Печать | Отправить эту страницу другу/знакомому! Отправить | Получать уведомления об обновлении этой темы Подписка ] Предыдущая тема     Следующая тема
Навигация по форуму:
Оценка темы:

Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения.
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
 

Page generated in 0.01198912 seconds (51.33% PHP - 48.67% MySQL) with 26 queries.


  Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
©NetAdmin.ws, 2001-2026.
Powered by: vBulletin
Copyright ©2000, 2001, Jelsoft Enterprises Limited.