MYSQL在主查询中选择子查询结果的值
我的sql查询是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
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似乎无效,因为您在子查询视图中将*
放在选择之前