mysql join从逗号分隔值中获取列值

时间:2018-02-17 10:20:53

标签: php mysql join

我有两张表格如下:

车辆:

vehicle_id   number_plate
1            B 101 RA
2            B 501 JU
3            B 401 JA
4            B 201 RU

团队:

team_id      team_name    available_vehicles
1            A-001        1,2
2            A-002        NULL
3            A-003        4

我想获得团队中车辆位置的价值,我想要的输出看起来像这样:

vehicle_id ║ number_plate ║ team_name
1          ║ B 101 RA     ║ A-001
2          ║ B 501 JU     ║ A-001
3          ║ B 401 JA     ║ NULL
4          ║ B 201 RU     ║ A-003

1 个答案:

答案 0 :(得分:2)

您可以使用find_in_set-function,但对于较大的数据集而言,这将是非常低效的。

select v.vehicle_id, v.number_plate, t.team_name
from vehicles v
  join team t on find_in_set(v.vehicle_id, t.available_vehicles);

您应该考虑使用单独的表格

创建正确的数据库结构
create table team_vehicles (
team_id int, 
vehicle_id int,
primary key(team_id, vehicle_id)
)