Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.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在主查询中选择子查询结果的值_Mysql_Sql - Fatal编程技术网

MYSQL在主查询中选择子查询结果的值

MYSQL在主查询中选择子查询结果的值,mysql,sql,Mysql,Sql,我的sql查询是 SELECT c_id , name , stu_id , option_id , expiration_status , expiration_date_type , expiration_date_val FROM options WHERE option_id IN ( SELECT option_id FROM registra

我的sql查询是

 SELECT c_id
      , name
      , stu_id 
      , option_id
      , expiration_status 
      , expiration_date_type 
      , expiration_date_val 
   FROM options 
  WHERE option_id 
     IN 
      ( SELECT  option_id 
          FROM registration WHERE status NOT in ('C','T')
           AND structure = 'C' 
      ) 
  ORDER 
     BY structure
      , option_id ASC

在这里,我想选择在子查询中作为主查询中的新列选择的选项\u id列表

使用join代替中的
,并根据需要从子查询中输入列名

SELECT `c_id`,`name`,`stu_id` ,`option_id`,`expiration_status` , `expiration_date_type` , `expiration_date_val`, t1.option_id as new_col
FROM `options` o  
 left join (
    SELECT  `option_id` 
    FROM `registration` 
    WHERE `status` NOT in ('C','T')
    AND `structure` = 'C' 
     ) t1 on o.option_id=t1.option_id
ORDER BY o.`structure`, o.`option_id` ASC

您可以使用
内部联接
来执行此操作

SELECT o.c_id,o.name,o.stu_id ,o.option_id,o.expiration_status , 
 o.expiration_date_type , o.expiration_date_val
FROM `options` o
JOIN `registration` r ON r.option_id=o.option_id AND  r.status NOT in ('C','T')
    AND r.structure = 'C' 
    ORDER BY o.structure, o.option_id ASC

您的sql似乎无效,因为您在子查询视图中将
*
放在
选择之前