2016-08-18 3 views
0

У меня есть 1 таблица с именем Location, содержащая столбцы LocationID, ParentLocationID и LocationName. Я хочу отобразить таблицу с «Location» и «Parent Location», полученную из LocationID. Как я могу это сделать?SQL Производить несколько столбцов из одного столбца

Пример:

Скажем, например, мой стол выглядел следующим образом:

LocationID | ParentLocationID | LocationName

1  |  3   |  abc 

2  |  3   |  def 

3  |  NULL  |  xyz 

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

LocationName | ParentLocationName

abc   |  xyz 
def   |  xyz 
+2

Некоторые данные образца и желаемый результат помогут – Lamak

+0

@SafetyFish не публикует данные в комментарии. отредактируйте свой вопрос с данными и ответьте с комментарием, говорящим, что вы добавляете дополнительную информацию. и используйте '@ userName', чтобы он получил уведомление. –

ответ

1

Сделайте самостоятельное соединение. Например:

SELECT a.LocationID, a.LocationName, 
     parent.LocationID, parent.LocationName 
FROM Location a 
INNER JOIN Location parent ON a.ParentLocationID=parent.LocationID; 
+1

Кстати, вы, вероятно, должны пойти с 'LEFT JOIN', потому что я уверен, что у некоторого местоположения нет родителя. Если у вас нет рекурсивной червоточины. –

+0

Это зависит от требований OP. С помощью «INNER JOIN» появятся только местоположения с родителями. Возможно, это то, что нужно. –

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