Как я могу сравнить одно и то же поле в 2 разных таблицах, когда оно совпадает или нравится? - PullRequest
0 голосов
/ 27 января 2011

Мне нужно сравнить 2 таблицы (поле - код) и создать третью, когда имя совпадает или нравится (с результатами из каждой таблицы).

таблица1: имя, фамилия код возраст

таблица2: адрес города код

В качестве результата мне нужна новая таблица с кодом из таблиц table1 и table2, чтобы увидеть разницу.

Каждое поле имеет текст, подобный a345694s3.

Ответы [ 4 ]

0 голосов
/ 31 января 2011
SELECT u.iduser, a.idaccount, u.usercode_user, a.usercode_accounts
FROM users AS u, accounts AS a
WHERE (((a.usercode_accounts) Like "*" & [u].[usercode_user] & "*"));
0 голосов
/ 27 января 2011

Если вы пытаетесь увидеть, какие коды находятся в таблице 1 по сравнению с таблицей 2, попробуйте FULL OUTER JOIN

SELECT t1.code AS T1, t2.code as T2
FROM   table1 t1
FULL   OUTER JOIN table t2
       ON t1.code = t2.code

Результаты:

T1     T2
====   ====
A      NULL  --'A' is in table1 but not table2
NULL   B     --'B' is in table2 but not table1
C      C     --'C' is in both tables

EDIT

Поскольку FULL OUTER JOIN недоступен в MS Access, вы можете использовать INNER JOIN, LEFT OUTER JOIN и RIGHT OUTER JOIN для достижения того же, что обсуждалось здесь .

0 голосов
/ 28 января 2011

Из вашего комментария вы хотите найти любые несоответствующие строки, которые плохо импортированы.Сначала я найду все подходящие строки, которые были импортированы правильно, а затем просто выберу что-либо, отсутствующее в этом наборе.

SELECT * 
FROM table1 
WHERE code NOT IN (
    -- find all the matching values of code which imported correctly
    SELECT code 
    FROM table1 
      JOIN table2 ON table1.code = table2.code
)

Это не будет быстрый запрос, но, поскольку он предназначен для проверки целостности, он не понадобится.запускаться в производство после первоначального импорта, поэтому скорость не является главной проблемой.

0 голосов
/ 27 января 2011

Я не уверен, но вы можете попробовать с условием где .. например: select * from tab1 t1, tab2 t2 where 't1.code'='t2.code'

Если вы получите результат для приведенного выше кода, сделайте его подзапросом !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...