LEFT JOIN для текущей строки в первичной таблице - PullRequest
0 голосов
/ 05 декабря 2009

Это вопрос о JDBC. У меня есть следующая задача. Я перебираю строки из таблицы A, и для некоторой текущей строки я хочу выполнить некоторый запрос к таблице B в контексте текущей строки из A. Например, если у меня есть какой-то запрос, такой как

SELECT B.description FROM A LEFT JOIN B ON A.ID = B.refId

тогда я хочу получить все результаты, где B.refId = "текущая строка из A" .ID. Обратите внимание, что я не могу изменить запрос для выбора результатов из B.

Например, давайте таблицу A, как это:

ID name

1  nameA
2  nameB

и таблица B:

ID description refID

1  desc1       1
2  desc2       1
3  decs3       2
4  desc4       2

Так что если я, например, в строке из таблицы A с ID 2 и выполню свой запрос, то я хочу получить только "desc3" и "desc4".

Я полагаю, что эту задачу можно решить с помощью курсоров, но я с ней знаком. Кто-нибудь может дать мне подсказку?

Ответы [ 3 ]

1 голос
/ 05 декабря 2009

На основании вопроса

SELECT B.description FROM
   A
   INNER JOIN
   B ON A.ID = B.refId
WHERE
   A.ID = 2

SELECT B.description FROM
   B
WHERE
   B.refid = 2

В противном случае, я не думаю, что мы понимаем вопрос ...

0 голосов
/ 05 декабря 2009

Можете ли вы просто сделать ваше описание .

A.*

Не уверен, что понимаю вопрос.

0 голосов
/ 05 декабря 2009

Какой у вас вопрос?Заданный вами запрос означает"все результаты, где B.refId = текущая строка из A.ID".

...