0

我的 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 是否满足这两个要求。任何人都知道这个查询有什么问题吗?谢谢和最好的问候!

4

2 回答 2

4

尝试加入如下子查询

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
于 2013-07-09T14:14:26.033 回答
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%'
于 2013-07-09T14:18:15.280 回答