我不知道爲什麼這段代碼不起作用。拋出語法錯誤,但據我所知,這應該工作。有人可以向我解釋我做錯了什麼嗎?SQL關聯實體的語法錯誤
insert into playerteam(playerId, teamId) select id from player where
player.firstname='John' and select id from team where team.`name`='Swim Team';
我不知道爲什麼這段代碼不起作用。拋出語法錯誤,但據我所知,這應該工作。有人可以向我解釋我做錯了什麼嗎?SQL關聯實體的語法錯誤
insert into playerteam(playerId, teamId) select id from player where
player.firstname='John' and select id from team where team.`name`='Swim Team';
用途:
INSERT INTO playerteam(playerId, teamId)
SELECT (SELECT id FROM player WHERE player.firstname='John'),
(SELECT id FROM team WHERE team.`name`='Swim Team');
完美工作,感謝您的反饋。我沒有注意where子句。還是一個noob here XD – remedy
此:
player.firstname='John' and select id from team where team.`name`='Swim Team';
^^^^^^^^^
你不能只返回整個查詢結果作爲where
條款。你必須以某種方式測試結果,例如下面給出
... AND EXISTS select ...
^^^^
@Suraz的解決方案實際上爲我工作,感謝您的反饋,我會考慮到存在也! – remedy
您select
查詢不正確─你不能使用select ... AND select ...
組合兩個查詢,則需要使用join
例如(但您需要在此添加用於連接的ON部分,以連接兩個表格):
insert into playerteam(playerId, teamId) select player.id as playerId,
team.id as teamId from player inner join team on {ADD HERE COLUMNS TO JOIN BY}
where player.firstname='John' and team.`name`='Swim Team';
是的,謝謝,我得到它的工作。我相信這個解決方案需要做更多的工作,然後再爲我所要做的事情做好準備,但是再次感謝您的反饋。 – remedy
你應該看看如何使用插入語句的子查詢 - 你的查詢格式是完全錯誤的... – Alex
我明白我出錯了,我沒有正確嵌套,並通過where子句運行查詢。我仍然對此感到陌生,但感謝您的反饋。 – remedy