[英]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.