Oracle SQL连接查询澄清
我对wrt Oracle SQL联接有一个澄清 场景: 我有两张桌子 T1具有以下结构 cId、pId、uId、catId、catName、tId、tName、tEvent &T2具有以下结构 cId、uId、pId PS:cId、uId和pId是公共列 我想要一个sqL语句,它将为我提供以下内容 1) T1上的所有记录在T2中是否匹配 2) T2上不在T1中的记录 Ex:-Oracle SQL连接查询澄清,sql,oracle,join,Sql,Oracle,Join,我对wrt Oracle SQL联接有一个澄清 场景: 我有两张桌子 T1具有以下结构 cId、pId、uId、catId、catName、tId、tName、tEvent &T2具有以下结构 cId、uId、pId PS:cId、uId和pId是公共列 我想要一个sqL语句,它将为我提供以下内容 1) T1上的所有记录在T2中是否匹配 2) T2上不在T1中的记录 Ex:- T1: cId pId uId catId catName tId
T1
:
cId pId uId catId catName tId tName tEvent
1001 2010 dolp 11 Amber 1100 Rod Login
1001 2014 dolp 11 Amber 1100 Rod Login
1002 2010 dolp 13 Anders 1500 Oli Login
1003 2010 dolp 14 Rock 1501 Ret Login
1004 2010 dolp 15 Lila 1600 Win Login
T2
:
cId pId uId
1001 2010 dolp
1001 2015 dolp
查询应提供以下结果:
cId pId uId catId catName tId tName tEvent
1001 2010 dolp 11 Amber 1100 Rod Login
{Record in T1}
1001 2014 dolp 11 Amber 1100 Rod Login {Record in T1}
1002 2010 dolp 13 Anders 1500 Oli Login {Record in T1}
1003 2010 dolp 14 Rock 1501 Ret Login {Record in T1}
1004 2010 dolp 15 Lila 1600 Win Login {Record in T1}
1001 2015 dolp 11 Amber 1100 Rod Login {Record in T2}
非常感谢您在这方面的帮助
谢谢。使用左侧外部联接,其中T2是第一个表。以下是了解连接的参考
select a.cId,a.pId,a.uId,b.catId,b.catName,b.tId,b.tName,b.tEvent from T2 a right outer join T1 b
on a.cId = b.cId and a.pId =b.pId ;
请参阅:使用左侧外部联接,其中T2是第一个表。以下是了解连接的参考
select a.cId,a.pId,a.uId,b.catId,b.catName,b.tId,b.tName,b.tEvent from T2 a right outer join T1 b
on a.cId = b.cId and a.pId =b.pId ;
请参阅:1)T1上的所有记录在T2中是否匹配
SELECT T1.*
FROM T1 LEFT OUTER JOIN T2 ON T2.cId=T1.cId
AND T2.uId=T1.uId
AND T2.pId=T1.uId
/
2)T2上不在T1中的记录。
SELECT T2.*
FROM T2
WHERE NOT EXISTS
(SELECT 1
FROM T1
WHERE T1.cId=T2.cId
AND T1.uId=T2.uId
AND T1.pId=T2.uId)
/
1)T1上的所有记录在T2中是否匹配
SELECT T1.*
FROM T1 LEFT OUTER JOIN T2 ON T2.cId=T1.cId
AND T2.uId=T1.uId
AND T2.pId=T1.uId
/
2)T2上不在T1中的记录。
SELECT T2.*
FROM T2
WHERE NOT EXISTS
(SELECT 1
FROM T1
WHERE T1.cId=T2.cId
AND T1.uId=T2.uId
AND T1.pId=T2.uId)
/
请澄清最后一行中的catId、catName等列是如何获取其值的。T2中没有此类列。请澄清最后一行中的catId、catName等列是如何获取其值的。T2中没有这样的列。