2017-02-19 6 views
0

Я присоединяюсь к различным таблицам со сведениями стран, где один из них (cty) является основной таблицей с названиями стран. Все таблицы имеют столбец c, связанный с первичным ключом в cty (также называемый c).Определение порядка столбцов в Postgresql полное объединение без присвоения имен всем столбцам

Чтобы присоединиться к ним все, я впервые использовал

select * from cty 
full join table1 using (c) 
full join table2 using (c) 

Это дает мне все страны cty, но я хочу только страны, присутствующие в других таблицах. Чтобы решить эту проблему, я попытался

select * from table1 
full join table2 using (c) 
join cty using (c) 

Это решает проблему о количестве линий, но теперь основные столбцы являются последними в таблице.

Есть ли способ сохранить столбцы от cty в начале (слева) таблицы без указания всех имен столбцов для всех таблиц (у меня много таблиц) и сохранить только строки, присутствующие во вспомогательных таблицах ?

+0

Просто используйте ВЫБЕРИТЕ CTY *, таблица2 * – h0mebrewer

+0

@ h0mebrewer отсутствует FROM-п запись для таблицы "CTY" – Rodrigo

+0

А теперь я вас понял @ h0mebrewer. "select cty. *, table1. *, table2. * from table1 full join table2 using (c) full join cty using (c)". Спасибо! – Rodrigo

ответ

1
select * from cty 
     right join 
     (select * from table1 
        full join table2 using(id) 
     ) fj on fj.id = tt1.id 
; 

Проверьте это:.. http://rextester.com/HCA83570

+0

Спасибо, он работает и более лаконичен, чем предложение @ h0mebrewer (каждая таблица включена только один раз). – Rodrigo

+0

Я рад помочь. – McNets

Смежные вопросы