的表1 的的
...
LogEntryID *PrimaryKey*
值
ThresholdID - - - 链接到应用于此日志条目的适当阈值
......
的表2 的的
...
ThresholdID *PrimaryKey*
阈值
......
所有字段都是整数 “......”的东西在那里表明这些表格比这更具有信息量。出于某种原因,它们以这种方式设置,此时我无法更改它。
我需要编写一个SQL语句来从 Table1 中选择每个记录,其中该特定日志记录中的Value字段小于<的链接记录中的Threshold字段b> 表2 的。
我对SQL很新,所以我知道这是一个基本问题 如果有人能告诉我这个SQL语句是如何构建的,那将非常感激。
答案 0 :(得分:4)
SELECT T1.*
FROM Table1 T1
JOIN Table2 T2 ON T2.ThresholdID = T1.ThresholdID
WHERE T2.Threshold > T1.Value
答案 1 :(得分:1)
SELECT * FROM Table1
JOIN Table2
ON table1.ThresholdID = table2.ThresholdID --(assuming table 2 holds the same value to link them together)
WHERE
value < thresholdvalue
'JOIN'根据'ON'子句连接2个表(可以是多部分,使用'AND'和'OR')
如果表2中有3个条目共享table1的主键(一对多关联),您将在结果集中收到3行。
对于下表,例如:
Table 1:
Key Value
1 Hi
2 Bye
Table 2:
Table1Key 2nd_word
1 You
1 fellow
1 friend
2 now
此查询:
SELECT * FROM Table1 加入表2 在table1.key = table2.table1key
上得到这个结果集:
Key Value Table1Key 2nd_word
1 Hi 1 You
1 Hi 1 fellow
1 Hi 1 friend
2 Bye 2 now
请注意,JOIN仅在第二个表中存在匹配时返回结果,如果没有匹配则不返回结果。你可以LEFT JOIN(第二个表中的所有字段都是NULL)。
JOIN也可以串在一起,前一个JOIN的结果用来代替原始表。
答案 2 :(得分:1)
SELECT t1.*
FROM dbo.Table1 t1 INNER JOIN dbo.Table2 t2 ON t1.ThresholdID = t2.ThresholdID
WHERE t2.Threshold > t1.Value
答案 3 :(得分:1)
SELECT * from table1 t1 join table2 t2 on(t1.thresholdId = t2.thresholdId) 其中t1.value&lt; t2.threshold;
答案 4 :(得分:1)
SELECT t1.LogEntryID, t1.Value, t1.ThresholdID
FROM Table1 t1
INNER JOIN Table2 t2 ON t1.ThresholdID = t2.ThresholdID
WHERE t1.Value < t2.threshold