Итак, у меня есть две таблицы, news
стол и users
Таблица. Они установлены как ниже:
Новости:
id title user_id contents
пользователей:
id username password
Когда я запускаю этот запрос:
SELECT news.title, users.username, news.contents FROM news INNER JOIN users ON news.user_id=users.id WHERE news.id=:id
Я могу получить доступ только к идентификатору пользователя, используя $query['id']
, Таким образом, похоже, что объединение использует имена столбцов из таблицы2, хотя я хочу, чтобы они сопоставили его с именами столбцов таблицы1. Таким образом, хотя столбец называется id
в таблице пользователей, я хочу получить к нему доступ в user_id
, так как я указал, что в JOIN
запрос.
Мне это нужно, потому что если мне когда-нибудь понадобится id
из таблицы 1 они оба будут отображены в столбец с именем id
и я смогу получить только id
из таблицы пользователей.
Так есть ли способ сделать это? Доступ к столбцу из таблицы2 под именем столбца в таблице1?
В MySQL то, что вы указываете в операторе выбора, это то, что оно называется в наборе результатов, поэтому вам нужно указать, что вам дать. Вы делаете это с Как команда
SELECT users.id AS user_id ... FROM ...
Таким образом, вы можете называть это как хотите
или получить user_id из новостей с
SELECT news.user_id ... FROM ...
SELECT users.id AS id1, news.id AS id2, news.title, users.username, news.contents
FROM news INNER JOIN users ON news.user_id=users.id WHERE news.id=:id
echo $query['id1'] . $query['id2'];