簡體   English   中英

2 個值(日期時間和 ID)的內部連接同一個表

[英]inner join on 2 values (datetime and id) same table

我有2張桌子:

  1. 設備顏色
  2. 設備警報

兩個表都有特定於 device_id 和 datetime 的數據,例如設備顏色:

device_id, datetime, color

設備警報:

device_id, datetime, alert

現在每個設備每天可以有多個記錄。 因此,每天 1 台設備可以有多個警報和多種顏色。 並且有多個設備。

我想用查詢合並這兩個表。 但是當我這樣做時,我得到了很多行。 我不知道我做錯了什么。 這是我的查詢(它是 sql lite 因為它在 redash 中)

select a.alarm_type, a.created_at, a.monitor_id, dc.datetime, dc.device_id, dc.color
from query_505127 as a
inner join query_505241 as dc on a.monitor_id = dc.device_id
inner join query_505241 as dc1 on dc.datetime = a.created_at_date

沒有示例數據,很難確切地知道您想要什么..

此版本加入 query_505241 一次,使用兩個字段作為 JOIN 標准,我認為這就是您所追求的。

select a.alarm_type, a.created_at, a.monitor_id, dc.datetime, dc.device_id, dc.color
from query_505127 as a
inner join query_505241 as dc on a.monitor_id = dc.device_id
AND dc.datetime = a.created_at_date

此版本與您的查詢相同,但第二個 JOIN 基於 dc1.datetime 而不是 dc.datetime

select a.alarm_type, a.created_at, a.monitor_id, dc.datetime, dc.device_id, dc.color
from query_505127 as a
inner join query_505241 as dc on a.monitor_id = dc.device_id
inner join query_505241 as dc1 on dc1.datetime = a.created_at_date

這些中的任何一個都會返回您所期望的嗎?

暫無
暫無

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

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