gpt4 book ai didi

php - SELECT something JOIN ON something IN 多个表的列

转载 作者:行者123 更新时间:2023-11-29 03:45:00 25 4
gpt4 key购买 nike

我正在尝试将一堆 SELECT 整合为一个。

我有多个类似于以下内容的表格:

表:A1

+---+----+----+----+----+
|id | I1 | I2 | I3 | I4 |
+---+----+----+----+----+
| 1 | 5 | 6 | 1 | 3 |
+---+----+----+----+----+

表:A2

+---+----+----+----+
|id | I1 | I2 | I3 |
+---+----+----+----+
| 1 | 3 | 10 | 5 |
+---+----+----+----+

还有 1 个看起来像这样的表:

表:标准

+---+---------+
|id | Name |
+---+---------+
| 1 | 'one' |
| 2 | 'two' |
| 3 | 'three' |
| 4 | 'four' |
| 5 | 'five' |
| 6 | 'six' |
| 7 | 'seven' |
| 8 | 'eight' |
| 9 | 'nine' |
|10 | 'ten' |
+---+---------+

PHP 代码

<?php
while(/*"A" tables*/){
$noi = // number of columns in this A table
$id = // id of this A table
$columns = "";
for ($i=1; $i<=$noi; $i++){
$columns = $columns . "A" . $id . ".I" . $i . ", ";
}
$columns = rtrim($columns, ", ");

$sql = "SELECT s.* FROM A" . $id . "
INNER JOIN Standards AS s
ON s.id IN (" . $columns . ")
WHERE A" . $id . ".id=1
ORDER BY s.id ASC";

$result = mysql_query($sql);
}
?>

我想将所有这些 SELECTS 合并为 1。我想我可以运行一个 for 循环来生成表的所有名称,但我不确定如何将它们与另一个 JOIN ON 连接起来... IN (...) 就在那里。

我要生成的结果是:

+---+---------+
|id | Name |
+---+---------+
| 1 | 'one' |
| 3 | 'three' |
| 5 | 'five' |
| 6 | 'six' |
|10 | 'ten' |
+---+---------+

最佳答案

看看这个解决方案,它应该为您提供如何执行此操作的基础:

select-mysql-rows-but-rows-into-columns-and-column-into-rows

简而言之,您可能想尝试从每行的列中选择值作为 2 个表中的行,并 UNION 这些数据集,然后将它们 JOIN 到查找表中。结果应该是你所描述的。 (我假设所有 I1、I2、I3 等列都代表您的查找表中的 ID)

关于php - SELECT something JOIN ON something IN 多个表的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7225838/

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