选择具有相同字段名称的MYSQL行并添加前缀

Sau*_*ius 3 mysql

我正在尝试创建一个mysql查询来选择几个表并且LEFT加入它们,但它们都有相同的列名称'user'等.我想以这种方式重命名所有字段.所以我尝试了以下查询

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
Run Code Online (Sandbox Code Playgroud)

然而,mod_backup_accounts . * AS account . *它失败了,有没有办法做到这一点?所以这将是帐户的名称.

Mic*_*ski 5

您无法为别名提供简写,您必须为每个列名明确地执行此操作.一般来说,通常建议在SELECT列表中明确命名所有列而不是使用SELECT *,因为它允许您确定性地指定列顺序,并保护您不会在以后意外地拉入大型BLOB(如果有人添加到列中)表(或任何其他架构更改).

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
Run Code Online (Sandbox Code Playgroud)