Запрос не работает в Postgres - PullRequest
       1

Запрос не работает в Postgres

0 голосов
/ 05 августа 2011

Привет! Я хочу построить запрос.

Моя структура таблицы:

Nodeid         Nodename   Nodetype Parentid   nodedes
1              Node1         A      0         hghg
2              Node2         B      1         kjhjkh
3              Node3         A      0         gfhgfh
4              Node4         B      1         kjhjkh

Если тип_узла равен B, тогда имя узла должно быть объединено с именем узла его парентиды.как NOde1-NOde4 или NOde1-node2

Я использую Hibernate, а также как преобразовать этот запрос в Hibernate запрос Я использую Postgres Я Wwitten запрос, но он будет работать только одна запись доступна .. Это неРабота для нескольких строк

SELECT nodename || '--' || (select nodename from table1 where nodetype='B')
FROM table1
WHERE nodeid in (SELECT table1.parentid FROM  table1  WHERE table1.nodetype = 'B')

Может кто-нибудь, пожалуйста, помогите

Ответы [ 2 ]

1 голос
/ 05 августа 2011
SELECT a.nodename||'--'||b.nodename 
FROM table1 a, table1 b
WHERE b.nodetype='B' 
AND a.nodeid = b.parentid;
0 голосов
/ 05 августа 2011

Вот запрос HQL, возвращающий все имена узлов типа B вместе с именем их родительского узла.Конкатенация не должна выполняться запросом.Вы должны сделать это в логике представления.

select node.name, parentNode.name from Node node
inner join node.parent parentNode
where node.type = 'B'

Этот запрос возвращает список Object[].Каждый Object[] содержит узел nalme в качестве первого элемента и имя родительского узла в качестве второго элемента.

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