2016-09-15 124 views
-1

我想比較幾乎desame列名的兩個不同表,並通過在具有相同值的列上標記1,並輸出0來給出ID列不變的ID值。比較兩個表並找到不匹配的記錄

表1

ID | Value | Color 
1 | good | red 
2 | bad | blue 

表2

ID | Value | Color 
1 | any | red 
2 | bad | blue 

輸出

ID | Value | Color 
1 | 0  | 1 
2 | 1  | 1 

,其中,在0與不同列的值的值。

+1

這裏是你的代碼? –

+0

我還沒有構建任何查詢。這對我來說非常困惑。 –

+1

你可以從這個問答開始http://stackoverflow.com/questions/2014890/comparing-data-between-two-mysql-tables-with-php - 這是谷歌搜索之後發現的許多「比較2 mysql表php」 (爲你)。 *享受!* –

回答

0
SELECT table1.id, 
    CASE WHEN table1.value=table2.value THEN 1 ELSE 0 END AS value, 
    CASE WHEN table1.color=table2.color THEN 1 ELSE 0 END AS color 
FROM table1 JOIN table2 ON table2.id=table1.id 
ORDER BY 1; 

或短的方法:

SELECT table1.id, (table1.value=table2.value) AS value, (table1.color=table2.color) AS color 
FROM table1 JOIN table2 ON table2.id=table1.id 
ORDER BY 1; 

方法在MySQL的語法:

SELECT table1.id, 
    IF(table1.value=table2.value, 1, 0) AS value, 
    IF(table1.color=table2.color, 1, 0) AS color 
FROM table1 JOIN table2 ON table2.id=table1.id 
ORDER BY 1; 
+0

嗨,我試過查詢,但它給了我錯誤的輸出。有沒有辦法像IF ELSE方法那樣做? –

+0

我已經添加了MySQL數據庫的方法。 –

+0

我明白了,現在查詢正在工作。謝謝先生。 –

相關問題