在mysql中使用where子句的同一列上的多个连接不起作用

库特PHP

我有两个表-车辆和员工。

车辆具有两个字段-1)所有者(指员工ID)2)Assigned_to :(指员工ID)。

我想创建一个拥有者并分配给名字的报告。当我删除where子句时,以下查询有效,但使用where子句则错误为

where子句中的未知列O.firstname。

SELECT V.*, CONCAT(O.firstname,' ',O.lastname) AS ownerName, 
CONCAT(A.firstname,' ',A.lastname) AS assigneeName 
FROM vehicles AS V LEFT JOIN employees AS O ON V.owner=O.id 
LEFT JOIN employees AS A ON V.assigned_to=A.id 
WHERE (`O.firstname` LIKE '%xyz%' OR `O.lastname` LIKE '%xyz%' OR `A.firstname` LIKE '%xyz%' OR `A.lastname` LIKE '%xyz%' OR `V.license_state` LIKE '%xyz%' OR `V.make` LIKE '%xyz%' OR `V.model` LIKE '%xyz%' )

有什么解决方法吗?

阿鲁库马尔

在您的WHERE子句中,表别名为

`O.firstname` 

这是错误的方法,您可以对列名应用反引号,而不是对表别名使用,

O.`firstname`

另外,如果您将LEFT JOIN相关条件LEFT JOIN本身而不是WHERE从句中应用,那么如果employees表中没有条目,则不会失败

因此查询将是:

SELECT V.*, 
       CONCAT(O.firstname, ' ', O.lastname) AS ownerName, 
       CONCAT(A.firstname, ' ', A.lastname) AS assigneeName 
FROM vehicles AS V  
LEFT JOIN employees AS O ON V.owner = O.id AND (A.`firstname` LIKE '%xyz%' OR A.`lastname` LIKE '%xyz%')
LEFT JOIN employees AS A ON V.assigned_to = A.id AND (V.`license_state` LIKE '%xyz%' OR V.`make` LIKE '%xyz%' OR V.`model` LIKE '%xyz%')
WHERE O.`firstname` LIKE '%xyz%' OR O.`lastname` LIKE '%xyz%'

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Sumproduct 在同一列上具有多个条件不起作用

MySQL使用AND运算符在同一列上多个WHERE IN

MYSQL使用多个where子句更新同一列

SELECT 匹配条件值以及同一列上多个条件 WHERE 子句的结果

同一列上的多个where子句具有多对多关系

MySQL将在同一列上使用两个WHERE-X-IN-Y子句优化查询吗?

在同一列上两次使用WHERE子句?

在MySQL的同一列上使用sum,count

我想在dplyr中的另一列上添加新列不起作用

MySQL在同一表的同一列上使用AND条件选择查询

在同一列上搜索多个条件?

按同一列上的多个值过滤

在同一列上具有多个条件的 MySQL 查询

MYSQL-同一列上的多个和条件不同的值

在pyspark中使用agg在同一列上进行多个聚合

SQL-多个条件where子句在同一列

同一列的where子句中的多个条件

在MySQL的同一列上应用AND条件

在同一列上使用多个 OR 和 AND 进行选择

mysql WHERE子句包含多个值的变量-不起作用

我们可以在 WHERE 子句中对同一列使用多个 AND 条件吗?

如何使用WHERE子句中同一列的多个值?

同一个表的列上的 SQL 连接与另一列上的 MAX

SQL-如何合并(UNION?)3列,同时在另一列上使用WHERE子句

where子句在mysql中不起作用

mysql where子句不起作用

如何在同一表的不同列上使用不同的where子句连接SQL语句

Laravel where子句在多个orWhere子句之后不起作用?

编写一个严格满足同一列上的多个条件的选择查询