mysql - 为什么这个相当简单的连接不起作用?

标签 mysql database join left-join

我正在使用此查询来获取 HABTM 关系中具有特定标签的所有任务。但是由于某种原因,它无法将相关标签附加到 tags_tasks,因此返回 0,因为它无法从标签表中获取任何内容。

SELECT `Task` . * , `Task`.`id`
FROM `tasks` AS `Task`
LEFT JOIN `tags_tasks` AS `TagsTask` ON ( `TagsTask`.`task_id` = `Task`.`id` )
LEFT JOIN `tags` AS `FilterTag` ON ( `FilterTag`.`id` = 'TagsTask.tag_id' )
WHERE `Task`.`assigned_id` = '4de50bef-bbc8-404d-9f46-2a

当我删除 WHERE 子句时,它返回所有任务,但标记字段的条目为 NULL。

问题实际上是 CakePHP 使用引号而不是反引号创建无效连接。感谢您指出这一点,我将进行更深入的调查。

最佳答案

SELECT *
FROM `tasks`
LEFT JOIN `tags_tasks` ON ( `tags_tasks`.`task_id` = `tasks`.`id` )
LEFT JOIN `tags` ON ( `tags`.`id` = `tags_tasks`.`tag_id` )
WHERE `tags`.`name` = 'Problem'

您在第 3 行使用了一个字符串,这不可能工作。

关于mysql - 为什么这个相当简单的连接不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6276649/

相关文章:

sql-server - 无法从 SSMS 连接到 AWS 数据库

php - 使用 PHP 从数据库中选择一个随机行,但不相等

mysql - 获取我在 SQL 中关注的用户的关注

mysql - 如何构建这个复杂的sql?

mysql - 何时在 MySQL 中使用 STRAIGHT_JOIN

mysql - 使用 LEFT JOIN 对相同的行进行分类,而无需重复一对多关系

database - 自动调整 levelDB 磁盘空间?

mysql - 原始删除查询

mysql - 在 MySQL 中对同一个表使用子查询

mysql - 错误 : connect ECONNREFUSED