Как успешно выполнить эту инструкцию SQL INSERT JOIN WHERE?

#php #mysql

#php #mysql

Вопрос:

Я хочу вставить в таблицу community_players идентификатор сообщества и идентификатор игрока из соответствующих таблиц; «сообщества» и «пользователи», где выполняются следующие условия:

users.user_email И communities.admin = ‘steve.downs@gmail.com ‘ И communities.code = ‘HX99F9’

Это то, что у меня есть до сих пор….

INSERT INTO TABLE community_players (community_id, player_id)
FROM TABLE communities
JOIN TABLE users
ON id
WHERE users.user_email = 'steve.downs@gmail.com'
AND communities.admin = 'steve.downs@gmail.com'
AND communities.code = 'HX99f9'

Это 3 таблицы, о которых идет речь:

users
id | user_email | user_password | user_name

communities
id | name | code | admin

community_players
community_id | player_id

Комментарии:

1. Не могли бы вы, пожалуйста, добавить структуру ваших таблиц? Мы можем только спросить, как вызываются поля в ваших таблицах.

Ответ №1:

Должно выглядеть так:

 INSERT INTO community_players (community_id, player_id)
SELECT communities.id, users.id
FROM communities INNER JOIN users ON communities.admin = users.user_email
WHERE users.user_email = 'steve.downs@gmail.com'
AND communities.code = 'HX99f9'
  

Комментарии:

1. Это приводит к следующей ошибке;: #1064 — У вас ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с ‘Сообщества ТАБЛИЦ ПРИСОЕДИНЯЮТСЯ К пользователям ТАБЛИЦЫ В сообществах.admin = users.user_email WHE’ в строке 3

2. Здорово, что это исправлено 🙂

Ответ №2:

Должно быть что-то вроде:

INSERT INTO community_players (community_id, player_id)
(SELECT communities.community_id, users.user_id
FROM TABLE communities
JOIN TABLE users ON id
WHERE users.user_email = 'steve.downs@gmail.com'
AND communities.admin = 'steve.downs@gmail.com'
AND communities.code = 'HX99f9'

)`

Но это трудно сказать, не зная схем баз данных сообществ таблиц и пользователей. Что звучит особенно странно, так это JOIN TABLE users ON id часть… это сработает, только если в таблице сообществ есть поле, содержащее идентификатор пользователя (что может быть необычным в этом случае использования).

Комментарии:

1. Хорошо, не могли бы вы показать схему базы данных, пожалуйста? Без них трудно помочь, потому что никто не знает, как называются поля базы данных