我需要一个SQL查询来读取三个表中的记录,例如表A,表B,表C.每个表都有ID和creationdatetime列在它们之间是通用的。
我可以从前端插入数据
此外,查询返回的数据应根据记录的creationdatetime列按降序排序,并且不应有任何重复。
请参阅:
TABLE A: ID creationdatetime
TABLE B: ID creationdatetime
TABLE C: ID creationdatetime
情境:-1
TABLEA
ID Creationdatetime
1 2014-05-28 11.00
TABLEB
ID Creationdatetime
1 2014-05-28 11.00
TABLEC
ID Creationdatetime
1 2014-05-28 11.00
情境:-2
TABLEA
ID Creationdatetime
1 2014-05-28 11.00
TABLEB (No Data)
ID Creationdatetime
TABLEC
ID Creationdatetime
1 2014-05-28 11.00
情境:-3
TABLEA
ID Creationdatetime
1 2014-05-28 11.00
TABLEB (No Data)
ID Creationdatetime
TABLEC (No DATA)
ID Creationdatetime
情境:-4
TABLEA
ID Creationdatetime
1 2014-05-28 11.00
TABLEB
ID Creationdatetime
1 2014-05-28 12.00
TABLEC
ID Creationdatetime
1 2014-05-28 13.00
只是添加我上面提到的四个场景。我期待一个应该返回的查询:
场景:-1,场景:-2,场景:-3 =一个记录和 场景:-4 = 3条记录
这是一个示例代码,我试图加入两个表:
select * from TABLEA, TABLEB
where TABLEA.ID=9205920588298715136
group by TABLEB.creationdatetime
order by TABLEB.creationdatetime desc
答案 0 :(得分:0)
select table1.columna,
table2.columnb,
table3.columnc
from table1
join table2
on table1.creationdatetime = table2.creationdatetime
join table3
on table3.creationdatetime = table2.creationdatetime
ORDER BY creationdatetime DESC
你还没有给我足够的关于表格结构的信息,或者哪些数据可能会导致重复...所以我无法回答这个问题。
编辑:我无法发表评论,所以我必须在此处发布,使用联接来获取不同的数据,您可以使用分组和不同的关键字。 (如果你不介意它返回哪一行)
答案 1 :(得分:0)
我认为你应该使用union而不是join。 所有表之间的联合将为您提供所有三个表的不同数据。
Select * from Table1
Union
Select * from Table2
Union
Select * from Table3
考虑所有表都有类似的表结构。
或者如果您想要表的所有列,可以在它们之间使用完全外连接。它会根据您的要求为您提供所有行。
Select * from Table1 A
full outer join table2 B on A.Id = B.Id
Full outer join Table3 C on A.Id = C.Id
希望它有所帮助。