U zoekt naar *
op steroïde. Helaas is er geen dergelijke functionaliteit in SQL
.
Oplossing 1:
Gebruik de kracht van blokselectie in je favoriete teksteditor (vim,atom,...). Plaats elke kolom in een nieuwe rij. Blok selectie om AS
te schrijven en tabelvoorvoegsel. Blokkeer vervolgens de selectie en kopieer kolomnamen.
Oplossing 2:
Genereer een selectielijst met INFORMATION_SCHEMA.COLUMNS
:
SELECT
string_agg(FORMAT('%s.%s AS %s_%s', "table_name",
column_name,"table_name", column_name), ', ')
FROM information_schema.columns
WHERE "table_name" IN ('products', 'taxes', 'categories');
Je zou E',\n'
. kunnen gebruiken om elke kolom in een nieuwe regel te plaatsen.
Uitgang:
╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗
║ string_agg ║
╠════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╣
║ products.id AS products_id, products.name AS products_name, taxes.id AS taxes_id, taxes.name AS taxes_name, categories.id AS categories_id, categories.name AS categories_name ║
╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝