Php mysql join从逗号分隔值获取列值
我有两个表格如下: 车辆:Php mysql join从逗号分隔值获取列值,php,mysql,join,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
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
您可以使用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);
您应该考虑用< /P>单独的表创建适当的数据库结构
create table team_vehicles (
team_id int,
vehicle_id int,
primary key(team_id, vehicle_id)
)
您可以使用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);
您应该考虑用< /P>单独的表创建适当的数据库结构
create table team_vehicles (
team_id int,
vehicle_id int,
primary key(team_id, vehicle_id)
)
您应该规范化您的可用车辆栏,并思考以下问题:团队是否可以共享车辆?您应该规范化您的可用车辆栏,并思考以下问题:团队是否可以共享车辆?