提取 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 的值的主要内容,如果未能解决你的问题,请参考以下文章