我正在使用此查询来获取 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/