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)