2011-04-10 137 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