我有两张桌子PRODUCT和ACCOUNT。
PRODUCT表格列
product_id (PK)
subscription_id
ACCOUNT表格列
account_nbr
subscription_id
(account_nbr and subscription_id are primary key columns in account table)
... Other columns
我必须为account_nbr
找到subscription_id
和product_id
。
我得到product_id
作为输入。使用它我可以得到subscription_id from PRODUCT table
和
使用subscription_id
我可以从ACCOUNT表中获取account_nbr
值。
可以在一个查询中完成,而不是在两个查询中获取信息吗?
如下所示:
select distinct a.acct_nbr,p.subscription_id
from ACCOUNT a,PRODUCT p
where v.product_id = ' val 1' and
v.subscription_id = p.subscription_id
与两个单独的查询相比,上述查询的性能是否会降低?
答案 0 :(得分:3)
我必须为product_id找到account_nbr和subscription_id。
所以,你的方法是正确的,你需要将两个结果集加在一起:
select p.account_nbr, p.subscription_id
from account a
join product p
on a.subscription_id = p.subscription_id
where p.product_id = :something
有些观点:
v
;我不知道这是从哪里来的。a.acct_nbr
,它不存在。与两个单独的查询相比,上述查询的性能是否会降低?
可能不是。如果您的查询是正确的并且您的表被正确编入索引,那么您编写的任何内容都不太可能超过SQL引擎。该数据库旨在快速选择数据。