MySQL-错误代码1054-where子句中的未知列al.article_id
我正在尝试执行以下查询,但无法找到问题所在。它一直在抱怨 where子句中的未知列al.article\u id 错误在下面的部分,但我无法解决它,请一些人帮助。这是因为它嵌套在exists->select->if中MySQL-错误代码1054-where子句中的未知列al.article_id,mysql,sql,Mysql,Sql,我正在尝试执行以下查询,但无法找到问题所在。它一直在抱怨 where子句中的未知列al.article\u id 错误在下面的部分,但我无法解决它,请一些人帮助。这是因为它嵌套在exists->select->if中 EXISTS ( SELECT ( IF(al.post_type = 'article', ( SELECT DISTINCT (a.t
EXISTS
(
SELECT (
IF(al.post_type = 'article',
(
SELECT DISTINCT (a.tag_id)
FROM
(SELECT tag_id FROM article_tags WHERE article_id = al.article_id) a
JOIN
(SELECT tag_id FROM user_tags WHERE user_id = 48 AND type = 'interest') b
ON a.tag_id = b.tag_id
),
我认为您可以尝试在此处指定特定列“table.column”: 从article_tags中选择tag_id,其中article_id=al.article_id) 致:
从article_tags WHERE table.article_id=al.article_id)中选择tag_id)请描述您的表列以及您尝试执行的操作。您确定知道您正在执行的操作吗?EXISTS子查询中的SELECT子句被忽略。@我只是将SELECT用作包装器,如果我不使用SELECT并直接写入EXISTS if(al.post_type)。。。它给了我语法错误我自己解决了。。这是一种参考问题。。由于多重嵌套,al.article_id不可用。我通过将整个有问题的块放在存储函数中解决了这个问题。
EXISTS
(
SELECT (
IF(al.post_type = 'article',
(
SELECT DISTINCT (a.tag_id)
FROM
(SELECT tag_id FROM article_tags WHERE article_id = al.article_id) a
JOIN
(SELECT tag_id FROM user_tags WHERE user_id = 48 AND type = 'interest') b
ON a.tag_id = b.tag_id
),