Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: как объединить несколько таблиц
Форумы портала PHP.SU » » Вопросы новичков » как объединить несколько таблиц

Страниц (1): [1]
 

1. muspel - 30 Марта, 2012 - 14:47:27 - перейти к сообщению
Добрый день! Имеется несколько таблиц: t1, t2, t3... Допустим, в каждой только один столбец id.
Как слить все эти таблицы в одну res одним запросом?
сам нашел только такое решение:

foreach($tables as $table)
INSERT INTO res SELECT id FROM $table

но мне это представляется корявым...

Спасибо!
2. ПТО - 30 Марта, 2012 - 14:57:34 - перейти к сообщению
muspel пишет:
Добрый день! Имеется несколько таблиц: t1, t2, t3... Допустим, в каждой только один столбец id.
Как слить все эти таблицы в одну res одним запросом?
сам нашел только такое решение:

foreach($tables as $table)
INSERT INTO res SELECT id FROM $table

но мне это представляется корявым...

Спасибо!

Какие столбцы у двух других ?
3. muspel - 30 Марта, 2012 - 15:03:55 - перейти к сообщению
таблицы с одинаковой структурой, то есть в каждой только столбец id
4. ПТО - 30 Марта, 2012 - 15:22:42 - перейти к сообщению
muspel пишет:
таблицы с одинаковой структурой, то есть в каждой только столбец id

НУ смотри, средствами скуэл это делается. Так как ты не понимаешь и жмешься, чтобы назвать столбики , а так же не говоришь, КАК их тебе надо объединить, по какому принципу, то и ответить тебе точно не получится.
SELECT * FROM (t1 LEFT JOIN t2 USING(id)) LEFT JOIN t3 USING (id)
5. muspel - 30 Марта, 2012 - 15:30:52 - перейти к сообщению
нет, я, видимо, неправильно выразился, извиняюсь. И я не жмусь, просто пример такой)
в общем, таблицы:
t1.id | t2.id | t3.id
1 | 2 | 3
4 | 5 | 6
нужно получить:
res.id
1
2
3
4
5
6
6. ПТО - 30 Марта, 2012 - 15:36:22 - перейти к сообщению
muspel пишет:
нет, я, видимо, неправильно выразился, извиняюсь. И я не жмусь, просто пример такой)
в общем, таблицы:
t1.id | t2.id | t3.id
1 | 2 | 3
4 | 5 | 6
нужно получить:
res.id
1
2
3
4
5
6

Ну тогда
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM t1 UNION ALL SELECT * FROM t2 UNION ALL SELECT * FROM t3;
7. muspel - 30 Марта, 2012 - 15:38:45 - перейти к сообщению
Спасибо! еще раз извиняюсь за нечеткость формулировки

 

Powered by ExBB FM 1.0 RC1