php mysql连接查询别名

unhi4e5o  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(324)

这个问题在这里已经有了答案

非唯一表/别名(1个答案)
两年前关门了。
两张table。我想从设置表中选择2个名称。我想对于这个简单的要求,一个联接表可能太过分了,让我知道。
错误号:1066
非唯一表/别名:“设置”

SELECT `parameter`.*, `settings`.`name` as `unitname`, `settings`.`name` as `sourcename` 
FROM `parameter` 
INNER JOIN `settings` ON `parameter`.`unit_id` = `settings`.`id` 
INNER JOIN `settings` ON `parameter`.`source_id` = `settings`.`id` 
WHERE `parameter`.`isdeleted` =0 
ORDER BY `parameter`.`id` DESC
dgenwo3n

dgenwo3n1#

您两次连接同一个表,因此当您引用该表时,查询引擎无法知道您指的是哪个连接表。为表设置别名(在查询中为它们提供临时名称)以使它们可以单独识别:

SELECT
  `parameter`.*,
  `unit_settings`.`name` as `unitname`,
  `source_settings`.`name` as `sourcename`
FROM
  `parameter`
  INNER JOIN `settings` AS `unit_settings` ON `parameter`.`unit_id` = `unit_settings`.`id`
  INNER JOIN `settings` AS `source_settings` ON `parameter`.`source_id` = `source_settings`.`id`
WHERE
  `parameter`.`isdeleted` = 0
ORDER BY
  `parameter`.`id` DESC

相关问题