2012-06-20 2 views
0

Есть две таблицысравнить данные двух таблицы в MySQL

Table A 
id column_a 
01 abc 
01 abc 
02 abc 
02 abc 
02 abc 
03 abc 
03 abc 
04 abc 

Таблица B

id column_b 
01 abc 
02 abc 
02 abc 
03 abc 
04 abc 

Я хотел бы сравнить эти две таблицы выше, и получить результаты в таблице А, но не в таблица b нравится:

id column_a 
01 abc 
01 abc 
02 abc 
03 abc 

Как я могу это сделать в MySQL?

Большое спасибо!

Обновлено

+0

Одинаковые строки в таблицах? Зачем? Зачем они нужны? –

+0

Не имеют ли 2 таблицы первичный ключ? –

+0

@ypercube no PKs –

ответ

5
SELECT A.* FROM A 
LEFT JOIN B ON A.column_a = B.column_b AND A.id = B.id 
WHERE B.id IS NULL 
+0

Спасибо, я обновил свой вопрос, пожалуйста, проверьте! –

+0

@xxd: Раньше вы сказали, что этот ответ - это то, что вы ищете, и теперь вы обновили вопрос? –

+0

Извините, я открыл новый вопрос. Прости. –

2

Попробуйте

SELECT A.* FROM A 
LEFT JOIN B ON A.ID=B.ID AND A.column_a=B.column_b 
WHERE B.ID IS NULL 

С уважением

+0

В чем разница между вашим и vearutop ответами? –

+0

@FahimParkar: они такие же, как я обновил в своем вопросе. –

+0

@Fahim: Когда Bizapps размещен, vearutop имел (слегка) другой ответ/vesrion. –

1

попробовать это:

select a.id,a.column_a 
from (select count(*) as a_num, id,column_a 
from table_a group by id having count(*) > 1) as a 
left join (select count(*) as b_num, id from table_b group by id having count(*) > 1) as b 
on a.a_num > b.b_num;