2017-09-02 92 views
0

我正在尝试学习SQL,并希望了解可以加入2个单独查询的场景。SQL - 多表与1-1和1-一起加入 - 多种关系

  1. 我有我的APP_MTRX表将加入与客户表检索其TYPE_ORD_NUM所有记录= 0或1
  2. 我需要根据SHR_ADR_ID与SHR_ADR表加入ADD_DTLS表以及需要检索的所有列其adr_type_id是0或1再次

  3. 接合1的结果和2

下面

我的SQL

select * from app_mtrx ABC 
left join cust on cust.cust_id = ABC.cust_id and abc.cust_ty_ord = 0 
left join cust BBC on cust.cust_id = BBC.cust_id and abc.cust_ty_ord = 1 
left join add_dtls DEF ON DEF.cust_id=BBC.cust_id 
left join shr_adr SHR on shr.shr_adr_id = def.shr_Adr_id 

能否请你建议,如果这是正确的做法,也如果我加入1 & 2正确....

+0

为什么左连接?内部连接也会起作用。休息方式看起来不错。而不是选择*,使用table_name.column_name来获取列。 – Amit

回答

0

试试这个:

SELECT * FROM APP_MTRX am INNER JOIN Cust c 
ON am.cust_id = c.cust_id 
AND am.cust_ty_ord in (0,1) 
INNER JOIN add_dtls ad 
ON ad.cust_id=c.cust_id 
INNER JOIN shr_adr sh 
ON ad.shr_adr_id = sh.shr_Adr_id 
AND ad.adr_type_id in (0,1)