gpt4 book ai didi

mysql - 选择并加入动态表名

转载 作者:行者123 更新时间:2023-11-30 23:30:09 28 4
gpt4 key购买 nike

我想获取有关每个项目 的所有信息。 Items 有全局变量(这里是 on_stock),但每个项目在不同的表中也有自己的属性,并且该表的名称与项目类型名称相同。

  1. 选择项目
  2. 将其 type_id 加入类型表 id -> name
  3. name.id 上加入所选项目

这是示例:

[items]
id | on_stock | type_id
-----+----------+-----------
1 1 1(=car)
2 0 1(=car)
3 1 2(=ship)
4 0 2(=ship)

[types]
id | name
----+--------
1 car
2 ship

[car]
id | top_speed
----+-----------
1 200
2 300

[ship]
id | color
-----+-------
3 red
4 blue

预期结果:

1 on_stock=1 top_speed=200
2 on_stock=0 top_speed=300
3 on_stock=1 color=red
4 on_stock=0 color=blue

请帮助实现这一目标!

最佳答案

如果我不能在一个请求中完成,我会在更多(1+项目类型计数)中完成。

首先,我需要所需的类型作为 array(id=>name):

$req_types = array();
$rs = mysql_query("
SELECT items.type_id,types.name
FROM items
JOIN types ON items.type_id=type.id
GROUP BY items.type_id
");
while($type= mysql_fetch_assoc($rs))
$req_types[$type['id']] = $type['name'];

然后我需要通用和单独的项目数据:

$groups = array();     
foreach($req_types as $table)
{
$rs = mysql_query("
SELECT items.*,$table.*
FROM items
JOIN $table ON $table.id=items.id
");
while($item = mysql_fetch_assoc($rs))
$groups[$table][] = $item;
}

关于mysql - 选择并加入动态表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11121464/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com