【发布时间】:2011-11-07 13:11:06
【问题描述】:
我的 SQL 查询有很大的问题,我不知道如何决定。 所以,我有疑问:
SELECT * FROM table1 WHERE leftBorder <= 10 AND rightBorder >= 100
没关系。
下一步。
SELECT * FROM table1 WHERE
(leftBorder <= 10 AND rightBorder >= 100) OR (leftBorder <= 200 AND rightBorder >= 500)
没关系。
但是,我想从查询中获取左右边框的值,所以:
SELECT * FROM table1 WHERE
???
(SELECT leftBorder, rightBorder FROM table2 WHERE id in (1,2,3,4,5))
我需要在查询中为查询创建多条件...可以吗? 我没有程序,只是查询。
我试着给你解释一下:
SELECT TOP 1 leftBorder, rightBorder FROM table2 WHERE id in (1,2,3,4,5)
这会返回 1 行,其中包含 leftBorder 和 rightBorder,我可以在查询中使用它,例如:
SELECT * FROM table1 WHERE
table1.leftBorder <= table2.leftBorder AND table1.rightBorder >= table2.rightBorder
(SELECT TOP 1 leftBorder, rightBorder FROM table2 WHERE id in (1,2,3,4,5)) as table2
但是!它仅在我从查询返回 1 行时起作用。但是,如果我有 10 行作为回报并且我必须为 10 个条件生成查询,我该怎么办?我可以在查询中做吗?
【问题讨论】:
-
这里不是很清楚你想要什么...
-
您必须明白,您当然知道自己想要完成什么,但我们其他人只有两张用途和结构未知的表格,必须按照对规则的模糊描述进行连接......
-
您是否在 table1 中查找
leftBorder和rightBorder值与您指定的id值的记录的值相同的行?
标签: mysql sql sql-server sql-server-2005 sql-server-2008