MySQL-union 1 SELECT表和1个SUM/COUNT表

MySQL-union 1 SELECT表和1个SUM/COUNT表,mysql,Mysql,我有两张桌子。一个表的列中有一条记录,名为总体经验,另一个表的实际列名为总体经验,其中填写了调查分数 现在,这意味着我没有传统意义上的并集,其中两个表共享相同的记录值,而是尝试通过从表1中选择列名,然后从表2中的特定列中选择计数数据来链接两个表 这里是我正在努力解决的问题。这件事怎么办 编辑: 我计划运行一个mysqli\u fetch\u数组,然后echo将变量放在我需要它们的表中。大概是这样的: $sql = " (SELECT `Column`, `Department`, `Target

我有两张桌子。一个表的
中有一条记录,名为
总体经验
,另一个表的实际列名为
总体经验
,其中填写了调查分数

现在,这意味着我没有传统意义上的并集,其中两个表共享相同的记录值,而是尝试通过从表1中选择
列名
,然后从表2中的特定列中选择
计数
数据来链接两个表

这里是我正在努力解决的问题。这件事怎么办

编辑:

我计划运行一个
mysqli\u fetch\u数组
,然后
echo
将变量放在我需要它们的表中。大概是这样的:

$sql = "
(SELECT `Column`, `Department`, `Target` FROM `table_1` WHERE `Column` = 'Overall Experience')
UNION
(SUM(`Overall Experience` >= 8) / COUNT(*) * 100 AS med_osat,
COUNT(`Overall Experience`) AS med_osat_cnt FROM `table_2`)";

while($row = mysqli_fetch_array($result)){
    $med_osat = $row['med_osat'];
    $med_osat_cnt = $row['med_osat_cnt'];
    $med_osat_tgt = $row['Target'];
    $med_osat_dept = $row['Department'];
    $med_osat_name = $row['Column'];
    $med_osat_var = ($med_osat_tgt - $med_osat);

    // echo variable in a table
} 
多谢各位

编辑2:

要澄清表格结构,请执行以下操作:

表1

ID、列、部门、目标

表2


100多列调查数据,其中一列名称与表1中的
列值匹配

首先,应用联合时,列数和列名称应相同

第二件事,如果你也能分享表格结构会更好,这样我就可以看看这两个表格的结构,更多的建议只会是可用的,问题是可以理解的

你可以在这里试试:


由于每个查询只返回一行,因此可以将两组值交叉连接在一起:

$sql = "
SELECT t1.*, t2.*
FROM (SELECT `Column`, `Department`, `Target`
      FROM `table_1`
      WHERE `Column` = 'Overall Experience') t1
CROSS JOIN (SELECT SUM(`Overall Experience` >= 8) / COUNT(*) * 100 AS med_osat,
                   COUNT(`Overall Experience`) AS med_osat_cnt 
            FROM `table_2`) t2";
这将产生适合PHP代码中显示的处理的输出


您的预期结果是什么样的?@tcadidot0请查看编辑。查询的第一部分(来自
表1
)是否返回多行?@Nick,no,结果正好是一行,包含详细信息,例如调查的
总体体验
分数的
目标
分数。
联盟
不会以这种方式工作。。此外,您缺少一个
选择
非常感谢,这正是我需要的。谢谢你的帮助@不用担心,我很高兴能帮上忙。