Mysql 内部联接语法错误
我得到以下错误:Mysql 内部联接语法错误,mysql,Mysql,我得到以下错误: "Couldn't execute query. Duplicate column name 'id'" 使用此SQL语句时: SELECT count(*) as c FROM ( SELECT *, CONCAT_WS(', ', subordinates.last_name, subordinates.first_name) AS subordinate_name FROM orders INNER JOIN subordinates ON
"Couldn't execute query. Duplicate column name 'id'"
使用此SQL语句时:
SELECT count(*) as c FROM (
SELECT *, CONCAT_WS(', ', subordinates.last_name, subordinates.first_name) AS subordinate_name
FROM orders
INNER JOIN subordinates ON orders.subordinate = subordinates.id WHERE orders.responsible = 8)
这两个表(“下属”和“订单”)都有一个“id”列。加入“下属”表时是否可以排除“id”列
我正在使用MySQL,将查询更改为
SELECT count(*) as c
FROM (
SELECT orders .*, CONCAT_WS(', ', subordinates.last_name, subordinates.first_name) AS subordinate_name
FROM orders INNER JOIN subordinates ON orders.subordinate = subordinates.id
WHERE orders.responsible = 8
)
确保子选择中只有一个Id
您只需执行neem操作,以确保子选择中没有重复的名称
另外,一般的经验法则是不要使用
SELECT*
,因为它会极大地影响性能当您只想计算行数时,使用CONCAT_WS()
和*
有什么意义?您只需从订单中将SELECT count(*)写为c,然后在o.subsible=s.id上加入下属,其中o.responsible=8代码>
SELECT count(*) as c
FROM (
SELECT orders.*,
CONCAT_WS(', ', subordinates.last_name, subordinates.first_name) AS subordinate_name
FROM orders
INNER JOIN subordinates
ON orders.subordinate = subordinates.id
WHERE orders.responsible = 8)