我无法理解如何从表中获取唯一列(删除重复) 与另一个表数据进行比较。
在我的情况下
我有两张桌子
我希望在与tblviewer合作后从tblproduct获取唯一行 [在表格查看器中首先使用了查看者,然后在查看器表格中使用了产品,然后与tblproduct相符。
就像那样
如果我采用vieweris = 123两行productid选择12001& 11001之后,这个tblproduct productid并最终从tblproduct进行加工。
select *
from tblproduct
where productid =
(
select distinct(productid)
from tblviewer
where viewerid = 123
)
答案 0 :(得分:1)
有几种方法可以做到这一点。您可以对表格执行标准select *
from tblproduct
where productid in
(
select productid
from tblviewer
where viewerid = 123
)
来过滤结果:
INNER JOIN
或者,您也可以使用Select Distinct P.*
From tblProduct P
Join tblViewer V On V.ProductId = P.ProductId
Where V.ViewerId = 123
- 这样就无需使用EXISTS
:
DISTINCT
或者,您也可以使用Select *
From tblProduct P
Where Exists
(
Select *
From tblViewer V
Where V.ProductId = P.ProductId
And V.ViewerId = 123
)
,如其他答案所示:
IN
答案 1 :(得分:0)
我认为你只想使用IN子句,你不需要使用不同的
internal
答案 2 :(得分:0)
我不确定你在问什么,但我认为是,
select *
from tblproduct
where productid in
(
select distinct(productid)
from tblviewer
)