有两个表:
表账单
item_id | price
c1 | 10000
m1 | 9000
m2 | 8000
表汽车
id | model
1 | toyota
2 | bmw
我需要加入两个表,其中item_id = id并且item_id中的第一个字母是'c',所以我需要得到: c1 | 10000 | 1 |丰田
答案 0 :(得分:7)
select *
from cars c
join bills b on b.item_id = concat('c', c.id)
请注意,性能是以这个顺序加入(并且可接受)的数量级,因为生成复合键的计算是每 car 完成一次,而不是一次每辆车/票据组合我先加入票据然后加入汽车。
答案 1 :(得分:-1)
这样做:
select b.*, c.*
from bills b
inner join cars c on convert(substring(b.item_id, 2, 8000), int) = c.id
where b.item_id like 'c%'