Как выбрать все значения с нескольких таблиц?

Доброго времени суток.
Мне необходимо выбрать все поля из 7 таблиц, в одном запросе. Какой запрос должен быть ?
Перечислять таблицы так: SELECT * FROM t1,t2,t3 не получается, пустой результат.

Подскажите пожалуйста как сделать правильно ? Спасибо.
  • Вопрос задан
  • 48 просмотров
Пригласить эксперта
Ответы на вопрос 2
trapwalker
@trapwalker
Программист, энтузиаст
Автор вопроса сам не понимает что ему нужно сделать. Это значит, что результат не важен и мы тоже можем не париться, не углубляться и не гадать как экстрасенсы что же это действительно нужно было тому, кто сформулировал для автора эту задачу.
Склорее всего решение не нужно ни автору ни тому кто задачу сформулировал -- никому.
Оно также не нужно, как если бы автор вопроса спросил тут как вырезать аппендицит.
Из вопроса не ясно есть ли в таблицах данные, какие там есть столбцы, какой диалект SQL, есть ли между данными из таблиц логическая связь. Автору скорее всего пофигу на все это. У него, наверно, есть задание и мы тут это задание должны решить заглянув в астрал и проявив чудеса предусмотрителности.

SELECT 
  t1.f1 AS t1_f1, t1.f2 AS t1_f2, /*...*/ t1.fn AS t1_fn
 ,null  AS t2_f1, null  AS t2_f2, /*...*/ null  AS t2_fn
  /*...*/
 ,null  AS t7_f1, null  AS t7_f2, /*...*/ null  AS t7_fn
FROM table1 t1
UNION
SELECT 
  null  AS t1_f1, null  AS t1_f2, /*...*/ null  AS t1_fn
  t2.f1 AS t2_f1, t2.f2 AS t2_f2, /*...*/ t2.fn AS t2_fn
  /*...*/
 ,null  AS t7_f1, null  AS t7_f2, /*...*/ null  AS t7_fn
FROM table2 t2
UNION
/*...*/
SELECT 
  null  AS t1_f1, null  AS t1_f2, /*...*/ null  AS t1_fn
 ,null  AS t2_f1, null  AS t2_f2, /*...*/ null  AS t2_fn
  /*...*/
 ,t7.f1 AS t7_f1, t7.f2 AS t7_f2, /*...*/ t7.fn AS t7_fn
FROM tablen t7

Формально требования выполнены.
Ответ написан
@MaximaXXl
Если подходить формально, как в первом ответе
SELECT t_1.*, t_2.*, t_3.*, t_4.*, t_5.*, t_6.*, t_7.* 
FROM t1 t_1
          left join t2 t_2 on (1=1) 
          left Join t3 t_3 on (1=1)
          left Join t4 t_4 on (1=1)
          left Join t5 t_5 on (1=1)
          left Join t6 t_6 on (1=1)
          left Join t7 t_7 on (1=1)


Ну как минимум меньше текста =))) и может быть больше результат
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы