我正在使用 MS SQL 数据库,我有 3 个表:'base_info'、'messages'、'config'
bases:
ID Name NameNum
====================================
1 Home 101
2 Castle 102
3 Car 103
messages:
ID Signal RecBy HQ
============================
111 120 Home 1
111 110 Castle 1
111 125 Car 1
222 120 Home 2
222 125 Castle 2
222 130 Car 2
333 100 Home 1
333 110 Car 2
config:
ID SignalRec SignalOut RecBy HQ
====================================
111 60 45 101 1
111 40 60 102 1
222 50 60 102 2
222 30 90 101 2
333 80 10 103 1
好的,所以现在我有一个子查询,在其中我从配置表中选择“SignalRec”和“SignalOut”,并按 ID 和日期在消息表上匹配它(不包括在上面),问题是我需要它来匹配 where messages.RecBy = config.RecBy 但 config.RecBy 是一个字符串,但它的等效名称在基表中。所以我几乎需要在子查询或某种类型的连接中做一个子查询并比较返回的值。
这是我到目前为止所拥有的:
(SELECT TOP 1 config.SignalRec from config WHERE config.ID = messages.ID AND ||I need th other comparison here||...Order By...) As cfgSignalRec,
(SELECT TOP 1 config.SignalOut from config WHERE config.ID = messages.ID AND ||I need th other comparison here||...Order By...) As cfgSignalOut
我试图尽可能清楚地说明这一点,但如果您需要更多信息,请告诉我。