繁体   English   中英

连接存储在结果列中的表

[英]Joining a table stored within a column of the results

我想尝试将其保留为一个查询,而不使用PHP,但是事实证明这很困难。

我有一个称为应用程序的表,该表存储所有应用程序以及有关它们的一些基本信息。 然后,我有了一个表,其中包含所有类型的应用程序,并且该表包含对另一个表的引用,该表存储了有关所讨论的特定应用程序类型的更多特定数据。

select applications.id as appid, applications.category, type.title as type, type.id as tid, type.valuefld, type.tablename
from applications
left join type on applications.typeid=type.id
left join department on type.deptid=department.id
where not isnull(work_cat)
and  work_cat != ''
and applications.deleted=0
and datei between '10-04-14' and '11-04-14'
order by type, work_cat

现在,在旧版本中,每个结果都有另一个查询。 超过数百个结果...太糟糕了。

这是我要集成的查询,因此我可以在一个结果行中获取所有数据。 (旧的是ASP,我用PHP重写了它)

query = "select sum("&adors.fields("valuefld")&") as cost, description from "&adors.fields("tablename")&" where appid = '"&adors.fields("tablename")&"'"

我知道,准备好的语句是最好的解决方案,但是目前它们不是一个选择。

您不能使用普通的SQL查询来做到这一点-您需要具有查询所基于的一组定义的表。 您当前实现从查询表什么是命名的事实tablename从第一个结果集意味着要获得这一切都在一个查询中,你将不得不重组数据。 必须知道要查询的表是什么,而不是动态的。

如果使用这些不同表的原因是,每个表中存储的信息不同,则需要不同的记录(列)结构,则您可能需要查看大型表中的键/值对存储。 将动态命名的查询合并到一个位置后,即可将两个查询集成在一起。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM