在bill.item_id = cars.id上加入账单

时间:2012-01-10 13:59:09

标签: mysql sql database join

有两个表:

账单

item_id | price
c1 | 10000
m1 | 9000
m2 | 8000

汽车

id | model
1 | toyota
2 | bmw

我需要加入两个表,其中item_id = id并且item_id中的第一个字母是'c',所以我需要得到: c1 | 10000 | 1 |丰田

2 个答案:

答案 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%'