2013-10-13 9 views
0

Ниже приведены копии таблиц, которые я создал. Моя цель - просто выбрать уникальный id_num из Первой таблицы, который не найден во второй таблице.Выбор уникального идентификатора в mysql

Я попытался сделать код ниже, но каким-то образом, я продолжал получать пустые результаты

SELECT `first_table`.name FROM `first_table` 
INNER JOIN `second_table` 
ON `first_table`.id_num = `second_table`.id_num 
WHERE `first_table`.name = `second_table`.name 

Первая таблица:

id_num | name 
    301  | Bobby 
    123  | George 
    25  | Vicky 

Вторая таблица:

id_num | name 
    301  | Bobby 
    435  | George 
    25  | Vicky 

Мой результат желания я ищу:

id_num | name 
435  | George 
+2

'id_num' в желаемый результат должен быть' 123' вместо ' 435' согласно вашему требованию – sarwar026

+0

вам нужна эта фраза 'WHERE'? – tommyd456

ответ

3

LEFT JOIN должен работать здесь.

SELECT `first_table`.name FROM `first_table` 
LEFT JOIN `second_table` 
ON `first_table`.id_num = `second_table`.id_num 
WHERE `second_table`.id_num is NULL 

Смотрите также это полезно инфографики

enter image description here

+0

Прекрасный представитель ..............! –

+0

Кредит на изображение принадлежит @kingkero btw ... – sarwar026

1

попробовать это с помощью NOT IN

select `id_num` , name from `table2` where name not in (
                SELECT t1.name FROM `table1` t1 
                INNER JOIN `table2` t2 
                ON t1.id_num = t2.id_num) 

DEMO HERE

+1

Почему вы не должны использовать эту конструкцию ... http://sqlfiddle.com/#!2/46934/17 vs индексированный пример http://sqlfiddle.com/ #! 2/b773a/1 LEFT JOIN будет лучше масштабироваться на большом количестве записей –

+0

Исправить ... ......! –

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