簡體   English   中英

KSQL 查詢以顯示接收方和發送方信息

[英]KSQL query to display receiver and sender info

我有一個名為users的表,如下所示:

 +----+----------------+
 | id | name           | 
 +----+----------------+
 |  1 | Blake          | 
 |  2 | Jenn           | 
 +----+----------------+

我有一個名為transactions的流,如下所示:

 +----+----------------+----------------+
 | id | sender         | receiver       | 
 +----+----------------+----------------+
 |  1 | 1              | 2              |
 |  2 | 2              | 1              |
 +----+----------------+----------------+

所以基本上我想要的結果是這樣的:

 +----+----------------+----------------+----------------+----------------+
 | id | sender         | sender_name    | receiver       |receiver_name  |
 +----+----------------+----------------+----------------+----------------+
 |  1 | 1              | Blake          | 2              | Jenn           |
 |  2 | 2              | Jenn           | 1              | Blake          |
 +----+----------------+----------------+----------------+----------------+

我只設法加入由發送者或接收者分區的流和表,因此我只能獲得發送者信息或接收者信息。

您可以對users表使用兩次 JOIN 以獲得預期的結果:

SELECT TR.id, TR.sender, SE.name AS sender_name, TR.receiver, RE.name AS receiver_name
FROM transactions TR
JOIN users SE ON SE.id = TR.sender
JOIN users RE ON RE.id = TR.receiver

關鍵是創建一個流來顯示,我已經嘗試過您實際描述的方法,但我認為它不適用於 ksql,因為它需要一個 ';' 在第一次內連接之后。

Statement: create stream  userstransactionsjoinedfinal as select t.txid,t.sender,    
up1.firstname as senderfirstname,up1.lastname as senderlastname,up1.phonenumber as 
senderphonenumber,up1.email as senderemail,t.receiver,up2.firstname as 
receiverfirstname,up2.lastname as receiverlastname,up2.phonenumber as 
receiverphonenumber,up2.email as receiveremail,  t.SENDERWALLETID,  
t.RECEIVERWALLETID,t.status,t.type,t.amount,t.totalfee from transactionsrekeyed 
inner join usersnow up1 on up1.id=t.sender inner join usersnow up2 on up2.id = 
t.receiver;
Caused by: line 1:483: mismatched input 'inner' expecting ';'
Caused by: org.antlr.v4.runtime.InputMismatchException

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM