mySQL 查询 - #1054 - 未知列 3

标签 mysql sql

<分区>

Possible Duplicate:
MySQL #1054 unknown column

我需要一个只提取与用户提供的搜索查询相匹配的记录的查询。棘手的部分是用户正在搜索的信息在另一个表中。我的应用程序正在从名为“计算机”的表中提取记录。在“计算机”中有一列包含打印机的 ID 号 (default_printer)。所有打印机信息,如名称(用户正在搜索的)都在用户正在搜索的“打印机”表中。

所以我自然需要列出所有计算机信息,但同时将“计算机”表中的 ID 解析为“打印机”表中的名称。这是我到目前为止提出的查询:

     SELECT c.id, c.name, p.name default_printer, c.description
       FROM computers c, groups g
 INNER JOIN printers p
         ON g.default_printer = p.id OR c.default_printer = p.id
      WHERE p.name LIKE 'mfd%'

问题是我收到错误:#1054 - 'on 子句' 中的未知列 'c.default_printer'。 'computers' 表有一个名为'default_printer' 的列。

这是我的表架构:

Table name: computers
Columns: id, name, description, default_printer, report_date, guid

Table name: printers
Columns: id, name, path, location, description

Table name: groups
Columns: id, name, description, default_printer

我卡住了,求助!

最佳答案

不要混合连接的逗号表示法和显式连接表示法,您将失去对某些别名的访问权限。如果您无权访问别名,则无法引用其列。我假设群组有一列 id

此外,如其他地方所述,为了清晰起见,我建议您在解决此问题时为标签“default_printer”使用不同的名称。

SELECT c.id, c.name, p.name the_default_printer, c.description
   FROM computers c
   INNER JOIN groups g  ON g.id = c.guid
   INNER JOIN printers p
     ON g.default_printer = p.id OR c.default_printer = p.id
  WHERE p.name LIKE 'mfd%'

关于mySQL 查询 - #1054 - 未知列 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13478102/

相关文章:

php - 无法启用 mysqli 扩展 - PHP 7.1.12,无法连接到数据库

php - 注册php文件

php - Symfony2 : Left Join producing wrong query

php - mysql datatable.net 行值总计无法正常工作

mysql - 表格中的重复计数

MySQL:将一组值与具有不同顺序的列值进行匹配

mysql - MariaDB 在 cmd 提示符下打开而不是 MySQL

sql - 从链接到 Oracle 的 SQL Server 编写 SQL 查询时如何指定日期文字?

mysql - MariaDB 语法错误

java - Android sqlite 读取和比较问题