我已经绊倒了一段时间了。我有一个名为的表,gears
其中包含名称为:id
、mid
和. 我想搜索这个表并以 csv 格式返回一些独特的 s列表。例如,如果我可以使用:cid
installed
mid
cid
cid = $cid
$query = $database -> query("SELECT COUNT(mid), GROUP_CONCAT(mid) FROM gears WHERE cid=$cid", __LINE__, __FILE__);
$gears_installed = $database -> get_result($query);
$gears = $database -> get_result($query, 0, 1);
不用担心函数名称,它们完全符合人们的预期。因此,如果该特定有 3 行$cid
,使用mid
s: bank
,lottery
然后post
将$gears_installed
等于 3 并且$gears
将等于bank,lottery,post
。这按预期工作。
现在谈谈我的问题。每个唯一的mid
都有自己的表,名为settings_mid_here
. 即,对于上述三个,我有表格settings_bank
,settings_lottery
最后settings_post
。这些表中的每一个也将有一个名为的列cid
(这就是这两个表的关联方式)。如何运行一个查询以从每个表中返回整行 where cid=$cid
?我不想为SELECT * FROM settings_bank WHERE cid=$cid
andSELECT * FROM settings_post WHERE cid=$cid
和 finally运行单独的查询SELECT * FROM settings_post WHERE cid=$cid
,因为这可能会导致在一页加载时产生大约 10 个额外的查询(目前有 10 个不同mid
的 s)。
如您所见,问题是动态的。它必须能够适应不同数量的mid
s,以某种方式区分每个表中的设置(例如,settings_bank
可能有一个带有 name 的列name
,因此可能是settings_post
)。最后,如果不存在对应于给定的行,它还必须能够返回默认行(非空值)$cid
。
一项复杂的任务,但我希望有人可以帮助我,因为我无法到达任何地方。