MySQL – Объединение INSERT, VALUES и SELECT?

Я немного новый для SQL, и я действительно взаимодействую с ним достаточно, чтобы работать с базой данных с высокими баллами. Я использую php-скрипт для доступа к моей онлайн-базе данных MySQL. В любом случае.

У меня 2 стола, игрок и счет. У игрока есть id, uniqueDeviceId и chosenname. Оценка имеет обычные вещи, которые вы ожидаете.

То, что я действительно хотел бы сделать в одном запросе (уменьшить сложность …), – это комбинировать синтаксисы

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 (3-е «значение») и смешивать результат этого выбора с вводом предоставленных значений.

Это возможно? Все результаты поиска в googling найдены либо имеют все значения 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 будет обременять сервер базы данных. Положительная сторона этого подхода – читаемость.