gpt4 book ai didi

MySQL JOIN 从同一个表中获取多个条目

转载 作者:行者123 更新时间:2023-11-29 22:06:13 25 4
gpt4 key购买 nike

我有一个用户表,其中有一个用户 ID 和分配给该用户的多辆车辆。每辆车都是一个整数值,等于单独表中的车辆 ID。我想检索用户 ID 以及与该用户关联的每辆车的品牌和型号。我可以使用以下查询获取用户 ID 以及单个车辆的品牌和型号:

SELECT users.user_id, vehicles.make, vehicles.model
FROM users
JOIN vehicles ON users.vehicle1 = vehicles.vehicle_id

我尝试过多次连接等,但我无法让它工作。

任何帮助将不胜感激。

编辑以包含表结构:

我尝试将这些作为图像包含在内,但我还没有足够的帖子。

用户表

https://www.dropbox.com/s/tbn6e0omn96m41k/users.JPG?dl=0

车辆表

https://www.dropbox.com/s/8dpr22c9llbzrf2/vehicles.JPG?dl=0

我需要获取与用户关联的所有车辆的品牌和型号。

最佳答案

@vthokie11——德鲁的观点很好。你的表结构不好。您可以引用here

我的结构如下:1.用户表:

DROP TABLE IF EXISTS `stacktest`.`user`;
CREATE TABLE `stacktest`.`user` (
`user_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(45) DEFAULT NULL,
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;

2.车辆表:

DROP TABLE IF EXISTS `stacktest`.`vehicle`;
CREATE TABLE `stacktest`.`vehicle` (
`vehicle_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`make` varchar(45) DEFAULT NULL,
`model` varchar(45) DEFAULT NULL,
PRIMARY KEY (`vehicle_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;

3.user_vehicle表:(维护用户和车辆之间的关系)

DROP TABLE IF EXISTS `stacktest`.`user_vehicle`;
CREATE TABLE `stacktest`.`user_vehicle` (
`user_id` int(10) unsigned NOT NULL,
`vehicle_id` int(10) unsigned NOT NULL,
KEY `FK_user_vehicle_1` (`user_id`),
KEY `FK_user_vehicle_2` (`vehicle_id`),
CONSTRAINT `FK_user_vehicle_2` FOREIGN KEY (`vehicle_id`) REFERENCES `vehicle` (`vehicle_id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `FK_user_vehicle_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

现在您需要执行这个简单的查询:

SELECT user.user_id, vehicle.make, vehicle.model
FROM user LEFT JOIN user_vehicle on user_vehicle.user_id=user.user_id
LEFT JOIN vehicle on vehicle.vehicle_id=user_vehicle.vehicle_id where user.user_id=1;

关于MySQL JOIN 从同一个表中获取多个条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32131909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com