我想加入三张桌子。前两个有许多记录和一个日期时间字段,格式为“YYYY / MM / DD HH:MM:SS AM / PM”,第三个表连接到另一个字段,只有16个记录。
表A
TIME_EFFECTIVE DESCRIPTION SOMEDATA
1998/01/11 12:00:00 AM DescA DataEntry
1998/01/11 11:00:00 AM DescA DataEntry
表B
HOUR DESCRIPTION SOMEDATA
1998/01/11 12:00:00 AM DescA DataEntry
1998/01/11 11:00:00 AM DescA DataEntry
表C
DESCRIPTION IMPORT
DescA 12
DescB 34
当我尝试加入以下公式中的三个
时SELECT TableA.TIME_EFFECTIVE, TableB.SOMEDATA AS SomeName, TableC.IMPORT as imp
FROM TableA
LEFT OUTER JOIN TableB ON TableA.TIME_EFFECTICE = TableB.HOUR
LEFT OUTER JOIN TableC ON TableA.DESCRIPTION = TableC.DESCRIPTION
WHERE TIME_EFFECTIVE > '01/JAN/2017'
事情变得混乱,LEFT OUTER JOIN返回的行多于左表(TableA)中包含的行数。我不想要这个。我只希望连接匹配日期时间字段,其中TableA中的日期和小时与TableB中的日期和小时以及TableA和TableC之间的DESCRIPTION字段匹配。我有一种感觉这与Oracle SQL Developer的日期格式有关,但我不确定。 Oracle SQL开发人员将其设置为“DD / MMM / YY”格式,例如'01 / JAN / 17'。它是否考虑了加入时间或日期?