下面是我编写的一段SQL代码。我想将两个记录合并到一个记录中,其中第一个记录域显示为"来自源"并且第二个记录的域名变为“域名”#34;。我需要做更多的过滤,但为什么这个简单的陈述不起作用?
我收到错误"输入结束时的语法错误"
*SELECT
"ID" , "Time", "Source Domain", "To Domain" From
(SELECT "RecordID" As "ID","UTCTimestamp" As "Time","Domain" As "Source Domain" FROM public."Traffic - Mobile")T1
Inner Join Lateral
(SELECT "Domain" As "To Domain" FROM public."Traffic - Mobile" where "RespondentID"="T1"."RespondentID" )T2*
提前致谢
PostgreSQL版本9.3
答案 0 :(得分:0)
我认为您仍然需要ON
条款,因为它是INNER JOIN
。如果您不想指定ON
条款,我认为您可以使用CROSS JOIN
代替。
E.g。
SELECT
"ID" , "Time", "Source Domain", "To Domain" From
(SELECT "RecordID" As "ID","UTCTimestamp" As "Time","Domain" As "Source Domain"
FROM public."Traffic - Mobile")T1
Inner Join Lateral
(SELECT "Domain" As "To Domain" FROM public."Traffic - Mobile"
where "RespondentID"="T1"."RespondentID" )T2
ON true
答案 1 :(得分:0)
我认为你过于复杂了。表的简单自连接就足够了。您不需要派生表来重命名列
SELECT "ID", "Time", t1."Domain" as "Source Domain", t2."Domain" as "To Domain"
from public."Traffic - Mobile" as t1
join public."Traffic - Mobile" as t2 on t2."RespondentID" = t1."RespondentID";