是否有内联sql命令与intersect
类似或产生相同的结果?如果没有,有没有办法重写查询,所以它在一个查询中,而不是使用intersect
?SQL在线等效于相交
我现在的SQL查询:
SELECT
c.Log_Link
FROM
Classes c INNER JOIN
ClassValues cv ON c.Class_Link = cv.Class_Link INNER JOIN
ClassSelection cs ON cv.ClassSelection_Link = cs.ClassSelection_Link
WHERE
cs.classselection_link IN (95,1)
但是我真的后:
SELECT
c.Log_Link
FROM
Classes c INNER JOIN
ClassValues cv ON c.Class_Link = cv.Class_Link INNER JOIN
ClassSelection cs ON cv.ClassSelection_Link = cs.ClassSelection_Link
WHERE
cs.classselection_link = 95
INTERSECT
SELECT
c.Log_Link
FROM
Classes c INNER JOIN
ClassValues cv ON c.Class_Link = cv.Class_Link INNER JOIN
ClassSelection cs ON cv.ClassSelection_Link = cs.ClassSelection_Link
WHERE
cs.classselection_link = 1
感谢
你的第二个查询实际上是否返回任何数据?当然,'cs.classselection_link'不能等于1和95,这实际上是你在第二个查询中要求的。 – 2011-04-13 16:07:11
是的,基本上classValues持有class_link和classSelection_link。它基本上是一个多对多的关系,我希望所有的类都可以联系两个传入的classSelections。 – lancscoder 2011-04-13 16:10:49
为什么你不想使用'INTERSECT'?它存在的一个原因,那就是你的情况。 还有其他的方法来编写查询,但是它们会比在你的例子中使用'INTERSECT'要少得多。 是否有你想混淆代码的原因? – JNK 2011-04-13 16:24:18