mysql - 如何在 SQL 中同时使用 SELECT 和 VALUES 插入多行数据
问题描述
我有两张表,一张是所有者,一张是宠物,所有者持有 OwnerID 自动递增的整数。我需要在我的 Pet 表中选择 OwnerID,并为每个宠物名称/生日包含不同的值。
我试过这个,但它只是为每一行复制了相同的宠物名字/生日。
INSERT INTO Pet (OwnerID, PetName, DateOfBirth)
SELECT OwnerID, 'Luna', '2013-08-26T12:00:00+00:00'
FROM Owner;
我也试过这个:
INSERT INTO Pet (OwnerID, PetName, DateOfBirth)
VALUES (
(SELECT OwnerID, 'Luna', 2013-02-11 FROM Owner),
(SELECT OwnerID, 'Wally', 2014-09-28 FROM Owner),
(SELECT OwnerID, 'Bella', 2019-07-04 FROM Owner),
(SELECT OwnerID, 'Milo', 2017-03-15 FROM Owner));
但是列数与第 1 行的值不匹配。
那么我如何才能选择 OwnerID 并为每一行创建唯一的 PetName 值呢?
解决方案
I guess you only want to insert data into the table?
Then you must specify which Owner goes with each pet, and it is as simple as
INSERT INTO Pet (OwnerID, PetName, DateOfBirth)
VALUES (1, 'Luna', '2013-02-11'),
(4, 'Wally', '2014-09-28'),
(6, 'Bella', '2019-07-04'),
(12, 'Milo', '2017-03-15');
Owners must exist prior to that of course.
推荐阅读
- r - glmnet 错误“lognet 中的错误(x,is.sparse,ix,jx,y,权重,偏移量,alpha,nobs,:(列表)对象不能被强制输入'double'”
- raspberry-pi3 - Visual Studio 在全新安装时调试 IOT Core 时抛出 SEHException
- hibernate - 我想从休眠中我的实体的日期列中获取年份
- python-3.x - 由于 PortAudio 库问题(OSError),Windows 上的 PyInstaller 可执行文件无法运行
- algorithm - 并行打印多行 Golang
- sql-server - '(' 附近的语法不正确
- javascript - 如何使回调传递到 chrome.windows.getAll() 异步?
- django - “ModuleNotFoundError”,如何解决?
- google-maps - 按钮未显示在地图活动顶部
- python-3.x - 我正在尝试弄清楚如何使用 google drive api 和 python 来更新文件权限和所有权