Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql join从逗号分隔值获取列值_Php_Mysql_Join - Fatal编程技术网

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)
)

您应该规范化您的可用车辆栏,并思考以下问题:团队是否可以共享车辆?您应该规范化您的可用车辆栏,并思考以下问题:团队是否可以共享车辆?