以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  left join 重复的数据如何排除?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=131011)

--  作者:lur320
--  发布时间:2019/2/14 11:28:00
--  left join 重复的数据如何排除?
2个表。一个是产品编号、数量和销售国,第二个是主数据表,里面有 销售国和大洲。

第一个表只有1条数据,例如:产品编号11,数量99,销售国韩国。
在使用sqlcommand的left join或者inner join时,出现下面的错误

即第一个表只有1行数据。但是最后的结果是:

产品编号11,数量99,大洲亚洲
产品编号11,数量99,大洲亚洲





--  作者:lur320
--  发布时间:2019/2/14 11:36:00
--  
如何在sqlcommand里面实现跨表查询但是以第一个表为准呢?
--  作者:有点甜
--  发布时间:2019/2/14 12:09:00
--  

比如你通过编号关联。表1有一行编号 001,表2有几行编号 001、001、003、004,连接以后,就有两行001数据,是正常情况啊。

 

请具体说明你需要得到什么效果?


--  作者:有点甜
--  发布时间:2019/2/14 12:14:00
--  

 

如果你只需查找一行数据过来,你需要用子查询。

 

具体做一个例子发上来测试


--  作者:lur320
--  发布时间:2019/2/14 12:14:00
--  
我只想得到表一的数据,表一有几行,就统计几行。然后增加一列查询到对应表2的其他列的数据。
--  作者:有点甜
--  发布时间:2019/2/14 12:21:00
--  
以下是引用lur320在2019/2/14 12:14:00的发言:
我只想得到表一的数据,表一有几行,就统计几行。然后增加一列查询到对应表2的其他列的数据。

 

你表2有多行001,那你需要哪一行的001的数据?

 

具体问题,做一个实例发上来测试,说明你要做到的效果。


--  作者:lur320
--  发布时间:2019/2/14 12:27:00
--  
我只要表一的1行001。而表2的多行001是重复的,选一行就可。
--  作者:lur320
--  发布时间:2019/2/14 13:00:00
--  
解决了。

sel@ct quantity, sono, continents fr@m {order} left J@IN (sel@ct DISTINCT continents,country from {masterdata}) b on {order}.country_of_customer =b.country