我正在尝试编写一些SQL时遇到一些麻烦。基本上,有2个表具有以下字段(仅显示与SQL相关的字段):
发票
accno (fk, linked to id on accounts)
帐户
id (pk) allocateduser
基本上,我的SQL需要返回所有帐户当前登录名称为AllocatedUser的发票,该发票存储在会话中。这样做很简单吗?
谢谢
答案 0 :(得分:1)
您可以查找具有where
语句的用户的所有帐户,并使用join
将结果链接到发票表。例如:
select *
from invoices i
join accounts a
on i.accno = a.id
where a.allocateduser = 'YourUser'
答案 1 :(得分:0)
您可以使用半连接:
SELECT *
FROM invoice
WHERE EXISTS(
SELECT 1
FROM accounts
WHERE allocateduser = @allocateduser_value
AND pk = fk)
@allocateduser_value是您从会话传递的参数。小心字符串的情况,所以约翰不是约翰; - )