Bạn tìm kiếm *
trên steroid. Rất tiếc, không có chức năng này trong SQL
.
Giải pháp 1:
Sử dụng sức mạnh của lựa chọn khối trong trình soạn thảo văn bản yêu thích của bạn (vim, nguyên tử, ...). Đặt mỗi cột vào hàng mới. Chọn khối để ghi AS
và tiền tố bảng. Sau đó chọn khối và sao chép tên cột.
Giải pháp 2:
Tạo danh sách đã chọn bằng 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');
Bạn có thể sử dụng E',\n'
để đặt từng cột vào dòng mới.
Đầu ra:
╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗
║ 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 ║
╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝