簡體   English   中英

MySQL - 結合INSERT,VALUES和SELECT?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM