表格DM:
columns:msgid(主键),msggrp
12345,ABC
表DT:
columns:msgid(PK),taskid
12345,45678
表格TLC:
id,stateid,deliverymsgid(从DT表引用msgid),deliverytaskid
(任务来自DT表)
32433,325,12345,45678
我需要从(TLC表)中找到特定msgid的stateid:
我写了一个查询,使用:
select stateid from tlc
where tasked in
(select tasked from DT
where messageid in ('12345')
and stateid in 325
此查询有效,但我需要使用where子句编写查询 其中condition为msggroup列(DM表)
其中msgrp在('msggrp')in sql server
中你们可以帮助我吗?
答案 0 :(得分:1)
您可以像这样使用加入联接。
select stateid from tlc
join DT on tlc.deliverymsgid= DT.msgid
join DM on DT.msgid=DM.msgid
where DM.msggrp ='ABC'
但是我认为,你的数据库结构不合适,你不应该在两个表中都将msgid作为PK。一个表应该将它作为PK,其他表应该通过FK连接它。
希望它会对你有所帮助。