Mysql 多个IN子句
我对SQL查询有问题。我有一个疑问:Mysql 多个IN子句,mysql,sql,database,Mysql,Sql,Database,我对SQL查询有问题。我有一个疑问: SELECT * FROM serie WHERE serie_id IN (SELECT serie_id FROM L WHERE L_value = 33 AND I_value >= 0,1) AND serie_id IN (SELECT serie_id FROM clusterserie WHERE cluster_id LIKE 'RF%') ; 我想在这个查询中使用2 IN子句,因为我必须检查字段serie_id是否满足这2个
SELECT * FROM serie WHERE serie_id IN
(SELECT serie_id FROM L WHERE L_value = 33 AND I_value >= 0,1)
AND serie_id IN (SELECT serie_id FROM clusterserie WHERE cluster_id LIKE 'RF%') ;
我想在这个查询中使用2 IN子句,因为我必须检查字段serie_id是否满足这2个要求。
有人知道这个问题出了什么问题吗?
谢谢并致以最良好的问候 尝试加入子查询,如下所示
SELECT b.* FROM serie b
inner join L a on (a.serie_id = b.serie_id)
inner join clusterserie c on (c.serie_id = b.serie_id)
WHERE c.cluster_id LIKE 'RF%'
AND a.L_value = 33 AND a.I_value >= 0
尝试加入子查询,如下所示
SELECT b.* FROM serie b
inner join L a on (a.serie_id = b.serie_id)
inner join clusterserie c on (c.serie_id = b.serie_id)
WHERE c.cluster_id LIKE 'RF%'
AND a.L_value = 33 AND a.I_value >= 0
这里似乎有语法错误:
AND I_value >= 0,1)
我不知道这是什么意思
此外,您的查询将从避免子选择和使用联接中受益匪浅:
SELECT
s.*
FROM
serie s
INNER JOIN L
ON s.serie_id = L.serie_id
INNER JOIN clusterserie cs
ON s.serie_id = cs.serie_id
WHERE
L.L_value = 33
AND L.I_value >= 0 /* or whatever this is supposed to be */
AND cs.cluster_id LIKE 'RF%'
这里似乎有语法错误:
AND I_value >= 0,1)
我不知道这是什么意思
此外,您的查询将从避免子选择和使用联接中受益匪浅:
SELECT
s.*
FROM
serie s
INNER JOIN L
ON s.serie_id = L.serie_id
INNER JOIN clusterserie cs
ON s.serie_id = cs.serie_id
WHERE
L.L_value = 33
AND L.I_value >= 0 /* or whatever this is supposed to be */
AND cs.cluster_id LIKE 'RF%'
执行查询时是否出现错误?这是什么?我发现了一个问题:I_value>=0,1…除非这是我从未听说过的事情。执行查询时是否出错?这是什么?我发现了一个问题:I_值>=0,1…除非这是我从未听说过的东西。这在MySQL中有什么作用:a.I_值>=0,1?我不熟悉语法。我会选择b.*。。。似乎OP只想在结果中得到意甲的数据+1:联接比子查询更好imho。抱歉,我刚才复制了您的查询,因此将>=0,1保留在那里,我已将其设置为>=0作为1>0,因此不需要将1保留在那里。这非常有效!现在的问题是理解为什么并尝试导出到其他查询。。。非常感谢您这在MySQL中有什么作用:a.I_值>=0,1?我不熟悉语法。我会选择b.*。。。似乎OP只想在结果中得到意甲的数据+1:联接比子查询更好imho。抱歉,我刚才复制了您的查询,因此将>=0,1保留在那里,我已将其设置为>=0作为1>0,因此不需要将1保留在那里。这非常有效!现在的问题是理解为什么并尝试导出到其他查询。。。非常感谢你