Соединение двух таблиц, игнорирование записей из первой таблицы, если существует во второй - PullRequest
1 голос
/ 21 января 2011

Как присоединиться к таблицам, если я предпочитаю получать записи только из второй таблицы?Если секунд не существует, возьмите запись первой таблицы.

Table A         Table B         Result
pid,name,type   pid,name,type   pid,name,type
1,Anna,null     1,Anna,100      "1,Anna,100"
2,Bea,null      -               "2,Bea,Null"
3,Caro,null     3,Caro,100      "3,Caro,100"    
                3,Caro,200      "3,Caro,200"

Редактировать: я пытался улучшить свою таблицу примеров.

Ответы [ 2 ]

5 голосов
/ 21 января 2011
SELECT
   ISNULL(A.column1, B.column1),  --perhaps name
   ISNULL(A.column2, B.column2)  --perhaps id
FROM
   TableA A
   FULL OUTER JOIN
   TableB B ON A.column1 = B.column1  --assume name is matching column

Правка, я предполагаю, что у вас нет строки в таблице A и "Dave, 6" в таблице B.В противном случае, левого соединения Cybernate достаточно

3 голосов
/ 21 января 2011

Вы можете использовать левое соединение, я предполагаю, что имена столбцов TableB равны Name и ID соответственно.

SELECT tableA.Name, tableB.Id
  FROM tableA LEFT JOIN tableB
    ON tableA.Name = tableB.Name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...