IN()内部使用的查询返回: 1, 2.但是整个查询返回0行,这是不可能的,因为它们存在.我在这做错了什么?
SELECT DISTINCT
li.auto_id
FROM
links AS li
JOIN group_data AS gi ON
li.auto_id = gi.autoid AND li.user_id = gi.userid
WHERE
gi.groupid IN
(
SELECT
CAST( GROUP_CONCAT( gf.groupid ) AS CHAR )
FROM
group_followers AS gf
WHERE
gf.userid_ext = '1'
GROUP BY
gf.userid_ext
)
AND li.keyword LIKE '%shiba%'
Run Code Online (Sandbox Code Playgroud)
非常感谢,
冰
来自文档:
GROUP_CONCAT(expr):
此函数返回一个字符串结果,其中包含来自组的连接非NULL值.
你得到一个包含的字符串'1,2'.这不是你可以提供给IN子句的东西,因为它是单个值,而不是两个.
只是在没有它的情况下这样做它GROUP_CONCAT会起作用:
gi.groupid IN
(
SELECT
gf.groupid
FROM
...
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5298 次 |
| 最近记录: |