假设我有一个名为table1的表,例如,它对应的列是col1、col2、col3和col4。
什么是与做相同的事情:
-- note that the following query will not work
SELECT *
FROM table1
WHERE col1, col2 IN (SELECT col1, col2
FROM table1
WHERE col3 < 4)我必须在我的数据库中合并col1和col2才能工作吗?如果我将col1和col2合并到col1_2中,那么我将能够通过编写以下代码来执行上面的查询:
SELECT *
FROM table1
WHERE col1_2 IN (SELECT col1_2
FROM table1
WHERE col3 < 4)当使用一列时,IN子句可以正常工作。如果我可以在不修改数据库的情况下将它与多个列一起使用,那就太好了。
发布于 2011-06-15 10:53:40
SELECT * from table1 t1, table1 t2
where t1.col1=t2.col1 and t1.COl2=t2.Col2 and t1.col3<4试试这个
发布于 2011-06-15 10:56:31
等同于您所展示的是:
SELECT *
FROM table1 tb1
WHERE EXISTS
(
SELECT *
FROM table1 tb2
WHERE
tb1.col1 = tb2.col1 and
tb1.col2 = tb2.col2 and
tb2.col3 < 4
)但是,此查询没有多大意义,因为它等效于
SELECT *
FROM table1 tb1
WHERE tb2.col3 < 4我只是假设你展示的例子没有经过深思熟虑。
https://stackoverflow.com/questions/6352448
复制相似问题