Не могу найти хорошее решение для выбора из 2 разных таблиц - PullRequest
0 голосов
/ 15 октября 2019

, так что у меня есть эта проблема, где мне нужно выбрать из 2 разных таблиц в одном и том же MySQL запросе,

вот запрос:

SELECT * FROM minigame_players WHERE lobby='$game_id'

это работает отлично, но я хотел быэто также для выбора permissions из таблицы users, где username = возвращаемое значение из запроса ниже. Например, предположим, что приведенный ниже запрос возвращает значение John, затем я хотел бы (в том же запросе) выбрать permissions из users, где username = John - я попытался его найтис нескольких сайтов, но я не могу найти хорошее решение.

Ответы [ 2 ]

0 голосов
/ 15 октября 2019

Вы ищете простой JOIN:

SELECT mg.username, us.role 
FROM minigame_players mg
INNER JOIN users us ON us.username = mg.username 
WHERE mg.lobby= :game_id

Примечание: всегда используйте подготовленный оператор и параметризованные запросы. Рассмотрите этот знаменитый пост SO для более подробной информации.

0 голосов
/ 15 октября 2019

используйте подзапрос, как это может помочь, я мог бы предложить вам использовать mysql JOIN, если вы отобразили эти таблицы.

вы также можете использовать UNION, но вы должны иметь такое же количество столбцов в этих таблицах.

SELECT  (
  SELECT *
  FROM permissions
  where user = ?
 ) AS permission,
 (
  SELECT * 
  FROM minigame_players 
  WHERE lobby = ?
 ) AS player
)

используйте подготовленный оператор для предотвращения SQL-инъекций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...