mysql - 数据库查询失败 : Column 'id' in field list is ambiguous

标签 mysql

<分区>

       SELECT  realestate.id,node.id,node.name
                from realestate,
                (SELECT
                    GROUP_CONCAT(parent.name_en ORDER BY parent.lft DESC) AS name,id
                  FROM
                    address AS node JOIN address AS parent
                    ON node.lft BETWEEN parent.lft AND parent.rgt  
                  WHERE node.lft >={$lft} and node.rgt <={$rgt}
                  GROUP BY node.name) as node
        INNER JOIN users ON id_user = users.id
        LEFT JOIN pic ON id_realestate = realestate.id
        WHERE node.id = realestate.address_id

我尝试修改了几次,这个错误信息不会消失“数据库查询失败:字段列表中的列'id'不明确”。有什么解决办法吗?

最佳答案

问题出在子查询上,

SELECT  GROUP_CONCAT(parent.name_en ORDER BY parent.lft DESC) AS name,
        id  -- <<== HERE (change to node.ID or parent.ID)
FROM    address AS node 
        JOIN address AS parent
           ON node.lft BETWEEN parent.lft AND parent.rg

您应该指定 ID 来自哪个表,因为 node 和 parent 都包含 ID,这会导致歧义。它可以是 node.IDparent.ID

关于mysql - 数据库查询失败 : Column 'id' in field list is ambiguous,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16645010/

相关文章:

php - SQL 计数大小和性别

php - 我的网站需要 10 分钟才能加载

mysql - MYSQL中用SUM连接表的问题

mysql - 使用 MySQL 查询计算文本列中具有许多 ID 的确定词

python - Django SQL get查询返回一个<key, value> hashmap,如何访问该值?

MySQL - 将旧的默认日期时间值更新为新的默认值

php - 将标签附加到 MySQL 数据库中的一行

php - 需要更新数据库中的一行

mysql - 使用 Phinx Migrate 添加 'enum' MySQL 字段类型

php - 使用内爆将 HTML 表单 $_POST 数组插入 MySQL