[英]MySQL - Combining INSERT, VALUES, and SELECT?
我对SQL很陌生,我真的只是与它进行交互以获得高分数据库的工作。 我正在使用php脚本访问我的在线MySQL数据库。 无论如何。
我所拥有的是2桌,球员和得分。 播放器具有id,uniqueDeviceId和selectedname。 分数具有您期望的常规事物。
我在单个查询中真正想要做的是(为了降低复杂性......)是结合使用的语法
INSERT INTO scores VALUES
and INSERT INTO scores SELECT...
变成某种怪物,就像
INSERT INTO scores(score,difficulty,playerid)
VALUES(TheScoreThatImProviding,TheDifficultyThatImProviding, (SELECT
id FROM player WHERE uniqueDeviceId = TheUniqueIdThatImProviding)
)
如果这是有道理的。 我想查找playerId(第三个“值”),并将该选择的结果与提供的VALUES的输入混合。
这可能吗? 所有的谷歌搜索结果我发现要么全部有VALUES或所有SELECT。
有道理并被称为INSERT SELECT 。 这是uniqueDeviceId 123,Score 5和Difficulty'easy'的示例查询:
INSERT INTO scores (score, difficulty, playerid)
SELECT 5, 'easy', id
FROM player WHERE uniqueDeviceId = 123;
根据这个页面,你很接近。 但是将所有值都放入您的选择中。 就像是:
insert into scores (score, difficulty, playerid )
select TheScoreThatImProviding, TheDifficultyThatImProviding, player.id
from player where uniqueDeviceId = TheUniqueIdThatImProviding
这种方法怎么样:
INSERT INTO `tableA` SET
columnA = (SELECT `columnY` FROM `tableY` WHERE `id` = 2),
columnB = (SELECT `columnZ` FROM `tableB` WHERE `id` = 3);
我还没有对它进行基准测试。 但是使用多个SELECT
语句会给数据库服务器带来负担。 这种方法的优点是可读性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.