2013-12-18 4 views
0

Я хотел бы получить все результаты из 1 таблицы, которая была заполнена в другой, возможно ли это в запросе? Я пытался с левым соединением, но безрезультатно.Mysql Результаты из одной таблицы, которая еще не была заполнена

Table1: users_postcodes поле: почтовый индекс

Table2: почтовые индексы поле: почтовый индекс

Я хочу, чтобы все почтовые индексы из table2, которые не были добавлены в table1.

Это то, что я до сих пор, я точно знаю, что его неправильно, но любая помощь будет очень полезно:

SELECT t1.*, 
t2.`postcode` AS `nouser_postcode` 
FROM `postcodes` AS t1 
LEFT JOIN `users_postcodes` AS t2 on t2.`postcode` != t1.`postcode` 

ответ

1

LEFT JOIN означает «все записи в левой таблице, любой (любой) соответствующие записи справа ". Как написано в вашем запросе выше, таблица LEFT: postcodes, так как это в пункте FROM. Ваш объединенный стол, users_postcodes - это правая таблица ручек.

Вы на самом деле хотите RIGHT присоединиться вместо: все записи из users_postcodes, которые не имеют записи соответствия в почтовых индексов:

SELECT t1.*, t2.postcode 
FROM postcodes AS t1 
RIGHT JOIN users_postcodes AS t2 ON t2.postcode = t1.postcode 
WHERE t1.postcode IS NULL 

Это будет тянуть все записи из таблицы users_postcodes, попытайтесь сопоставить их против любых записей в пользователях. Однако, поскольку вы ищете несоответствующие записи, вы используете предложение WHERE, чтобы возвращать только те записи, которые НЕ имеют значения в t1.

+0

Все мои результаты продолжают возвращаться в NULL? Ну, я получаю 1 результат со всеми столбцами, говорящими NULL. – neoszion

+0

. Мой плохой он отлично работает. – neoszion

0

Я хочу получить все почтовые индексы из таблицы2, которые не были добавлены в таблицу1.

Попробуйте это:

SELECT distinct postcode 
FROM t2 
WHERE postcode NOT IN (Select postcode from t1) 
ORDER BY postcode 
Смежные вопросы