2015-12-09 3 views
-7

У меня есть таблица, как с колонкой ниже (который имеет нуль и ссылку на объект при нажатии он принимает деталь этого объекта, как имя, EmailAddress ....)SQL ЗАЯВЛЕНИЯ JOINS

ID COUNTRY 
1  null 
2  null 
3  null 
4  2zlad9.6f 

мне нужно написать запрос соединения в той же таблице, чтобы получить «object.Name» вместо значения «object» для столбца, а нулевое значение должно оставаться таким же.

При использовании с JOIN в той же таблице он просто дает столбцы, имеющие объект, где столбцы, имеющие нуль, игнорируются.

мне нужны все значения столбца, как показано ниже

ID COUNTRY 
1  null 
2  null 
3  null 
4  US 

Я использовал запрос как

Select p.ID, p.Country.Name 
from table1 p 
JOIN table1 p2 ON p.ID=p2.ID 

который только дает мне

ID Country 
4 US 
+5

Пожалуйста, найдите время, чтобы прочитать свой вопрос перед отправкой. Вопрос неясен. – sstan

+1

Примеры данных, ожидаемые результаты с использованием данных примера и то, что вы пробовали до сих пор, - все это хорошие места для начала. – xQbert

ответ

1

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

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

Select t1.id, t1.value 
From table1 t1 
Left Join table2 t2 on t1.id = t2.id 

--- EDIT -----

Это важно чтобы понять, что вы спрашиваете, когда вы присоединяетесь. Когда вы говорите «Выбрать из таблицы» 1 «Присоединиться к таблице2» ... что вы говорите, у меня есть ряд значений в таблице1, и я хочу отменить все совпадения из таблицы2.

Удостоверьтесь, что вы знакомы с концепциями теории множеств: Intersection, Difference и Union. Также here представляет собой визуальную схему понятий объединения. Все, что отмечено красным цветом, относится к данным, которые вы отбрасываете назад.