#mysql #phpmyadmin
#mysql #phpmyadmin
Вопрос:
Я хотел бы вставить данные, используя данный запрос MySQL.
INSERT INTO `profitdb`(`BetID`, `PlayerID`, `PlayerWL`,`AgentID`,`AgentRisk`)
SELECT `betdb`.`BetID`,`PlayerID`,`BetAmount` FROM `betdb`,
SELECT `agentdb`.`AgentID` FROM `agentdb`,
SELECT `agentdb`.`Risk` FROM `agentdb`
без 3-го и 4-го операторов SELECT все в порядке, но я хотел бы вставить данные идентификатора агента, которые будут поступать из таблицы agentdb, как правильно это сделать?
Комментарии:
1. можете ли вы объединить эти 2 таблицы? есть ли общее поле?
2. вы имеете в виду betdb и agentdb? Я не могу присоединиться к ним, потому что у них нет общего поля, кстати, я обновил свой пост
Ответ №1:
Вы можете union
получить свои результаты, однако вы вводите не select
столько столбцов AgentID
, Risk
сколько insert
ожидает ваша команда. У вас должно быть столько столбцов, сколько insert
вы ожидаете. Кроме того, их тип должен соответствовать ожидаемому типу.
Комментарии:
1. О, я вижу, я не разбираюсь в sql, поэтому я просто изложил свою идею и спросил, какой синтаксис, я попробовал, что говорит этот сайт, [ support.sas.com/documentation/cdl/en/sqlproc/62086/HTML/default / … и получите ошибку #1222 — Используемые операторы SELECT имеют разное количество столбцов
2. Точно. Вы должны убедиться, что ваш select совместим с insert .
3. Я исправил отношения таблиц и использовал левые соединения, чтобы сделать вставку действительной
4. Таким образом, ваша вставка допустима по синтаксису. Вы проверили, являются ли вставленные значения ожидаемыми? Если это так, то ваша проблема решена. Если мой ответ был полезен, вы можете принять его, поэтому в будущем он поможет и другим.
5. Да, они ожидаемые. Спасибо.
Ответ №2:
INSERT INTO `profitdb`(`BetID`, `PlayerID`, `PlayerWL`,`AgentID`)
VALUES (SELECT `betdb`.`BetID`,`PlayerID`,`BetAmount` FROM `betdb`,
(SELECT `agentdb`.`AgentID` FROM `agentdb`))
Попробуйте вышеуказанный, если он работает.
Комментарии:
1. sql сообщает # 1064 — У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с «SELECT
betdb
.BetID
,PlayerID
,BetAmount
FROMbetdb
, (SELECTagentdb
.` в строке 22. ВСТАВИТЬ В
profitdb
(BetID
,PlayerID
,PlayerWL
,AgentID
) ЗНАЧЕНИЯ SELECTbetdb
.BetID
,PlayerID
,BetAmount
FROMbetdb
, (SELECTagentdb
.AgentID
ИЗagentdb
) Как насчет вышесказанного?3. Еще одна идея — взять столбец в vars, а затем использовать его в инструкции insert .