Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在主查询的“in”子句中使用子查询的结果和逗号分隔的列表_Mysql_Subquery_Group Concat - Fatal编程技术网

Mysql 在主查询的“in”子句中使用子查询的结果和逗号分隔的列表

Mysql 在主查询的“in”子句中使用子查询的结果和逗号分隔的列表,mysql,subquery,group-concat,Mysql,Subquery,Group Concat,我有两张桌子: -一个用户,在名为login的列中包含每个用户的首字母缩写 -另一个任务计划在名为userId的列中包含相同的首字母。 我需要从表users中选择与criteria technician匹配的所有用户,然后我需要从TaskPlaned中选择与这些用户匹配的所有任务 我构建了以下查询: SELECT tp.* FROM taskplanned tp WHERE tp.userId IN ( SELECT ( GROUP_CONCAT(

我有两张桌子: -一个用户,在名为login的列中包含每个用户的首字母缩写 -另一个任务计划在名为userId的列中包含相同的首字母。 我需要从表users中选择与criteria technician匹配的所有用户,然后我需要从TaskPlaned中选择与这些用户匹配的所有任务

我构建了以下查询:

SELECT
tp.*
FROM
taskplanned tp
WHERE
tp.userId IN (
    SELECT
        (
            GROUP_CONCAT(CONCAT('''', login, ''''))
        )
    FROM
        users u
    WHERE
        u.cis_role LIKE '%technician%'
)
独立运行子查询时,会显示以下内容: ‘BDG’、‘FG’、‘BJ’、‘WDG’、‘NDW’、‘TV’、‘SA’、‘JV’、‘GW’、‘MU’、‘KD’、‘LV’、‘KL’、‘TDW’、‘DK’、‘KDS’、‘PD’、‘WB’

因此,我假设在主查询的in子句中插入这一部分时,它应该可以工作。不幸的是,事实并非如此。我是不是遗漏了什么


如果我从子查询中获取结果并手动将其添加到主查询中,它会像一个符咒一样工作

不需要进行分组。就这样做吧:

SELECT
tp.*
FROM
taskplanned tp
WHERE
tp.userId IN (
    SELECT
        login
    FROM
        users u
    WHERE
        u.cis_role LIKE '%technician%'
)
当这是一对一关系时,更好的方法是加入:

SELECT
tp.*
FROM
taskplanned tp
JOIN users u ON tp.userId = u.login
WHERE u.cis_role LIKE '%technician%'
Mysql 挑选* 从任务计划 WHERE userId IN SELECT login FROM user WHERE cis_角色,如“%technology%”

您不需要分组讨论