2011-04-10 95 views
1

比方说,我有以下SQL列:SQL双比较

SQL table

现在,我想这样做以下: 在COL_1,我的价值“一”。如果我检查一下,我在col_2中得到的相应数值,我发现了'two'和'three'。所以结果将是'两'和'三'。但是从这个结果集中,我只想要那些在col_1中使用的那些在col_2中具有相应的值'one'。所以: 'two',在col_1,确实col_2有'one',但是三个没有。因此,从{'two','three'}的结果集中只剩下{'two'}。

如何使用MySQL进行这种双重检查查询?

在此先感谢!

回答

4

这是通过JOIN在给定条件下给自己一张表完成的。假设你的表名是table

SELECT t1.col_1 
FROM table t1 JOIN table t2 ON t1.col_2=t2.col_1 
WHERE t1.col_1=t2.col_2 
AND t1.col_1='one'; 

这给:

col_1 
------- 
one 
(1 row) 
+0

这将返回一个错误: #1064 - 你在你的SQL语法错误;检查与您的MySQL服务器版本对应的手册,以便在'table t1 JOIN表t2 t2 t1.col_2 = t2.col_1 WHERE t1.col_1 = t2.col_2 AND t1.col_'附近使用正确的语法 – arik 2011-04-10 11:04:12

+0

更改'表“到你的实际表名。 – 2011-04-10 11:07:52

+0

:D我甚至确实已经创建了一个名为'table'的表,其中使用了实际的列名,这是给定示例的重现,但它仍然不起作用。 – arik 2011-04-10 11:14:45