我有 2 个简单的表:
表a:
+====+======+
| ID | Name |
+====+======+
| 1 | Alex |
| 2 | Steve|
+===========+
表 b:
+======+======+
| ID_B |Number|
+======+======+
| 1-20 | 20 |
| 1-21 | 40 |
+=============+
我想使用这个语法:
SELECT `Name`,sum(`Number`) From `a` Join `b` ON `a`.`ID` LIKE `b`.`ID_B`+'%'
我对Mysql不是很了解,我是新手。 我想将表a连接到表b,并且在表b中Number会自动计算所有WHERE ID表a> 与 b .ID_B %
相同最后我的回答是“Alex have 60 Number”。
最佳答案
你需要:
交换
like
运算符中a.id
和bid_b
的位置(两个值中较长的应该在左边所以它的剩余部分匹配右边的通配符)将
a.id
转换为字符串并将其连接到%
,您可以使用concat
完成此操作。即使您有引用,+
运算符也不会在 MySql 中连接字符串最好添加一个
group by
看起来像这样:
select name, sum(number)
from a
join b
on b.b_id like concat(a.id, '%')
group by name
根据您的情况,您可能希望在 %
之前添加连字符:
on b.b_id like concat(a.id, '-%')
关于MySQL LIKE 使用 % 符号形式连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44470535/