Selecting MYSQL rows with same field names and adding a prefix

mysql

Solution

You cannot supply a shorthand to alias columns you must do it explicitly for each column name. In general anyway, it is typically recommended to name all columns explicitly in the `SELECT` list rather than using `SELECT *`, since it allows you to deterministically specify the column order, and protects you against accidentally pulling in a large BLOB later on if one ever gets added to the table ( or any other schema changes ).

SELECT
  mod_backup_accounts.user AS account_user,
  mod_backup_subscriptions.user AS subscription_user,
  ...
  ...
FROM
  mod_backup_accounts
  LEFT JOIN `mod_backup_subscriptions` ON `mod_backup_accounts`.subscription_id = `mod_backup_subscriptions`.package_id

Problem

I'm trying to make a mysql query to select several tables and LEFT join them, however they all have same columns names 'user' etc. I want to rename all the fields in this manner . so I tried the following query ``` SELECT mod_backup_accounts . * AS account . * , mod_backup_subscriptions . * FROM `mod_backup_accounts` LEFT JOIN `mod_backup_subscriptions` ON `mod_backup_accounts`.subscription_id = `mod_backup_subscriptions`.package_id ``` However the `mod_backup_accounts . * AS account . *` makes it fail, is there a way to do this? so it would be names as account.

Original source