Du söker efter *
på steroid. Tyvärr finns det ingen sådan funktionalitet i SQL
.
Lösning 1:
Använd kraften i blockval i din favorittextredigerare (vim, atom,...). Placera varje kolumn i en ny rad. Blockera val för att skriva AS
och tabellprefix. Blockera sedan val och kopiera kolumnnamn.
Lösning 2:
Skapa urvalslista med 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');
Du kan använda E',\n'
för att placera varje kolumn i ny rad.
Utdata:
╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗
║ 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 ║
╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝