2011-06-08 98 views
1

我正在使用此查詢來獲取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子句,它將返回的所有任務,但與標籤領域的空項。

問題實際上是CakePHP用引號而不是反引號創建了一個無效的連接。感謝您指出,我會深入調查。

回答

2
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行使用了一個字符串,該字符串無法工作。

1

的代碼高亮真正幫助的情況下,第二的右側部分連接是在錯誤的括號,它應該是反引號(`)而不是引號(')

+0

這實際上是問題,查詢已被我的框架生成錯誤:/ – Dunhamzzz 2011-06-08 09:32:43

1

tags_tasks.tag_id被當作一個值,因爲它在引號之間。

相關問題