Совет SQL - выбор на основе столбца в другой таблице - PullRequest
0 голосов
/ 30 ноября 2010

У меня немного болит голова с каким-то SQL, который я пытаюсь написать. По сути, есть 2 таблицы, в которых есть следующие поля (отображаются только те, которые относятся к SQL):

Счета

 accno (fk, linked to id on accounts)

Счета

 id (pk)
 allocateduser

В основном, мой SQL должен возвращать все счета, для которых у учетной записи есть текущее зарегистрированное имя в качестве AllocatedUser, которое хранится в сеансе. Это просто сделать?

Спасибо

Ответы [ 2 ]

1 голос
/ 30 ноября 2010

Вы можете найти все учетные записи для пользователя с помощью оператора where и связать результат с таблицей счетов-фактур с помощью join.Например:

select  *
from    invoices i
join    accounts a
on      i.accno = a.id
where   a.allocateduser = 'YourUser'
0 голосов
/ 30 ноября 2010

Вы можете использовать semi-join:

SELECT * 
  FROM invoice
 WHERE EXISTS(

SELECT 1 
  FROM accounts 
 WHERE allocateduser = @allocateduser_value
   AND pk = fk)

@ allocuser_value - это параметр, который вы передаете из своего сеанса.Осторожно на случай строки, поэтому Джон не Джон; -)

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