提取 table1.column2 的总和,其中 table1.column1 包含来自 table2.column2 的值

Posted

技术标签:

【中文标题】提取 table1.column2 的总和,其中 table1.column1 包含来自 table2.column2 的值【英文标题】:Extract a sum of table1.column2 where table1.column1 contains value from table2.column2 【发布时间】:2017-08-05 21:38:53 【问题描述】:

我正在尝试建立一个类似于图中结构的数据库

我尝试使用此代码,但它似乎不起作用。

 SELECT wp_wpdatatable_4.remaining, wp_wpdatatable_7.name
    FROM wp_wpdatatable_4
    INNER JOIN wp_wpdatatable_7
        ON wp_wpdatatable_7.name LIKE CONCAT(wp_wpdatatable_4.techsname, '%');

谁能帮忙?

【问题讨论】:

你的图片有table1和table2,但是代码wp_wpdatatable_4和wp_wpdatatable_7。反正名字不好。 【参考方案1】:

您很接近,只需交换字段名称即可。

您正在尝试查询John Smith LIKE 'John Smith CTE 555-555-5555%',这永远不会是真的。

这将是真的John Smith CTE 555-555-5555 LIKE 'John Smith%'

这里是更正的查询

SELECT wp_wpdatatable_4.remaining, wp_wpdatatable_7.name
FROM wp_wpdatatable_4
INNER JOIN wp_wpdatatable_7
ON wp_wpdatatable_4.techsname LIKE CONCAT(wp_wpdatatable_7.name, ' %');

注意:在 % 之前添加空格以确保单词匹配

更新

要对剩余列中的值求和,请使用GROUP BY。这是更新后的查询:

SELECT SUM(wp_wpdatatable_4.remaining) AS total_remaining, wp_wpdatatable_7.name
FROM wp_wpdatatable_4
INNER JOIN wp_wpdatatable_7
ON wp_wpdatatable_4.techsname LIKE CONCAT(wp_wpdatatable_7.name, ' %')
GROUP BY wp_wpdatatable_7.name;

【讨论】:

谢谢,它可以工作,但我该怎么做才能将“剩余”中的值相加,而不是像 SELECT wp_wpdatatable_4.remaining, wp_wpdatatable_7.name FROM wp_wpdatatable_4 INNER JOIN wp_wpdatatable_7 ON wp_wpdatatable_4.techsname LIKE CONCAT(wp_wpdatatable_7.name, ' %') GROUP BY wp_wpdatatable_7.name; 中那样显示第一个值 已更新我的 POST 查询以求和 remaining 列中的值。【参考方案2】:

在 wp_wpdatatable_7.name 上使用通配符:

SELECT wp_wpdatatable_4.remaining, wp_wpdatatable_7.name
FROM wp_wpdatatable_4
INNER JOIN wp_wpdatatable_7 
ON wp_wpdatatable_4.techsname like '%wp_wpdatatable_7.name%'

【讨论】:

以上是关于提取 table1.column2 的总和,其中 table1.column1 包含来自 table2.column2 的值的主要内容,如果未能解决你的问题,请参考以下文章

使用另一个表的记录作为 WHERE 参数更新一个表中的记录

Pandas - 按函数和总和列分组以提取其他列总和为 0 的行

SQL 2 Left Join 在一个带有计数的查询中

创建一个新列提取值等于列名的值

如何找到从多个数组中提取的数字的最小总和?

如何从年月日的总和中提取日期分量乘以iOS中的某个整数?