MySQL INNER JOIN с разными именами столбцов

Итак, у меня есть две таблицы, 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?

1

Решение

В MySQL то, что вы указываете в операторе выбора, это то, что оно называется в наборе результатов, поэтому вам нужно указать, что вам дать. Вы делаете это с Как команда

SELECT users.id AS user_id ... FROM ...

Таким образом, вы можете называть это как хотите

или получить user_id из новостей с

SELECT news.user_id ... FROM ...
1

Другие решения

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'];
0

По вопросам рекламы [email protected]