【发布时间】:2024-01-14 04:44:01
【问题描述】:
我正在尝试订购 2 个表中的数据以显示在一个列表中,同时也基于第三个表中的 id。
表 3 包含其他 2 个表的 ID。
e_allocation table
------------------
eid, sid, iid
5, 1234, NULL
5, NULL, 1234
表 1 和表 2 是相似数据的表。
i_status table
--------------
iid, status
1234, Complete
1235, Complete
1236, Not Complete
s_status table
--------------
sid, status
1234, Complete
1235, Not Complete
1237, Not Complete
objCon.Execute ("SELECT a.sid, a.iid, b.status AS istats, c.status AS sstats
FROM e_allocation a LEFT JOIN i_status b ON a.iid=b.iid LEFT JOIN s_status c
ON a.sid=c.sid WHERE a.eid = '5' ORDER BY b.status Desc, c.status Desc")
所以目前我可以从数据库中获取数据,但它显然先订购表 b,然后再订购 c。我需要这些按加入顺序订购。
目前返回(Table=I or S, Record ID=1234, Status = Complete or Not Complete):
I:1234:Complete
I:1235:Complete
I:1236:Not complete
S:1234:Complete
S:1235:Not Complete
S:1237:Not Complete
我想得到:
I:1234:Complete
S:1234:Complete
I:1235:Complete
S:1235:Not Complete
I:1236:Not complete
S:1237:Not Complete
while not objDb.EOF
sid = objDb("id")
iid = objDb("iid")
if sid <>"" then datlst = datlst &"S:"& sid &":"&objDb("sstats")&",<BR>"
if iid <>"" then datlst = datlst &"I:"& iid &":"&objDb("istats")&",<BR>"
objDb.MoveNext
Wend
response.write datlst
非常感谢任何指向正确方向的指针? 谢谢
【问题讨论】:
-
老实说,我无法看到您的 SQL 语句是如何生成 I' 或 S' 的,请剪切并粘贴您在屏幕上实际看到的输出以及您想看到的内容。
-
I 或 S 只是显示数据来自哪个表,因此人们知道它是什么类型。
-
好的,所以你的排序实际上是在 asp 代码中 - 抱歉,其他人将不得不帮助你。
-
谢谢曼迪,如果它可以在 sql 语句中完成,那么我很愿意接受建议,我只是这样做以获得结果,尽管不是正确的!我确实需要通过 i_status 或 s_status 知道它来自哪个表。
标签: mysql asp-classic