2016-09-15 4 views
-1

Я хотел бы сравнить две разные таблицы с именами столбцов с наименьшим количеством дескрипторов и вывести их, пометив 1 на столбцах с одинаковым значением и 0 с равнодушными значениями, если столбцы идентификатора не затронуты.Сравните две таблицы и найдите запись unmatch.

Таблица 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

Вы можете начать с этого Q & A http://stackoverflow.com/questions/2014890/comparing-data-between-two-mysql-tables-with-php - Это один из многих найденных после Googling «сравнить 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

Привет, я попробовал запрос, но он дает мне неправильный вывод. Есть ли способ, которым я могу сделать что-то вроде метода EL ELSE? –

+0

Я добавил подход для базы данных MySQL. –

+0

У меня появилась идея, и запрос теперь работает. Спасибо, сэр. –

Смежные вопросы