Oracle Query从两个不同的表中加入,没有重复的条目

时间:2017-12-21 09:44:12

标签: oracle oracle11g

我需要根据以下要求选择查询。

Table 1:

    DEVICEID  MobileNo DealerCode FNAME LNMAE
    1          1234     11         test test
    2          1234     11         TEST tESt

Table 2:

    DealerCode DEALERNAME
    11         JON
    12         DOE

Output:

    MobileNo DealerCode NAME       DEALERNAME
    1234     11         test test  JON

请提供相同的查询。

4 个答案:

答案 0 :(得分:0)

这样的事情对你有用。

SELECT MIN (MobileNo) MobileNo,
       MIN (a.DealerCode) DealerCode,
       MIN (FNAME || ' ' || LNMAE) NAME,
       MIN (b.DEALERNAME) DEALERNAME
  FROM Table1 a JOIN Table2 b ON a.DealerCode = b.DealerCode;

答案 1 :(得分:0)

在您的选择查询中使用 distinct 关键字。那应该做。

select distinct t1.mobile_no, t1.dealer_code, t1.fname, t1.lname, t2.delear_name 
from table1 t1
join table2 t2 on t1.dealer_code = t2.dealer_code;

答案 2 :(得分:0)

  

“没有重复的条目”

您的数据不包含重复条目。有一个UID((Some(1),Some(14),Some(5))),每行包含post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = "YES" end end end deviceid的不同值。好的,它们仅在案例方面有所不同,但Oracle RDBMS区分大小写(默认情况下)。所以这些行是不同的。

也许您的应用需要fname上的唯一键?如果是这样,您需要指定一个规则来选择要键入哪一行以及丢弃哪一行。所以,像这样:

lname

答案 3 :(得分:0)

似乎table2table1 DealerCode的查找表(我假设它是table2中的主键列并且table1中有外键指出table2 DealerCode列。然后,您可以在没有too_many_rows例外的情况下尝试此操作:

SELECT t1.mobileno, t1.dealercode, lower(t1.fname||' '||t1.lnmae) name,
       ( select t2.dealername from table2 t2 where dealercode = t1.dealercode ) dealername 
  FROM Table1 t1 
  GROUP BY t1.mobileno, t1.dealercode, lower(t1.fname||' '||t1.lnmae);