Php 使用不同列名的MySQL内部联接
好的,我有两个表,一个Php 使用不同列名的MySQL内部联接,php,mysql,pdo,inner-join,Php,Mysql,Pdo,Inner Join,好的,我有两个表,一个新闻表和一个用户表。它们的设置如下: 新闻: 用户: 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']访问用户id。因此,连接似乎使用了表2中的列名,尽管我希望它们将其映射到表1的列名。因此
新闻
表和一个用户
表。它们的设置如下:
新闻:
用户:
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']
访问用户id。因此,连接似乎使用了表2中的列名,尽管我希望它们将其映射到表1的列名。因此,即使该列在users表中被称为id
,我还是希望在user\u id
下访问它,因为我在JOIN
查询中指定了它
我之所以需要它,是因为如果我需要表1中的id
,它们都将映射到名为id
的列,而我只能获得users表的id
那么有没有办法做到这一点?在MySQL中,以表1中的列的名称访问表2中的列?您在select语句中指定的是它在结果集中的调用,因此您需要告诉它给您什么。你可以用这个
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'];
这样你可以随便叫它什么
或者使用从新闻中获取用户\u id
SELECT news.user_id ... FROM ...
选择table 2.无论您想要什么名称(U)
?@Marc B这意味着我需要使用它,对吗?:选择news.title,users.id作为user\u id,users.username,news.contents FROM news internal加入新闻用户。user\u id=users.id WHERE news.id=:id
SELECT users.id AS user_id ... FROM ...
SELECT news.user_id ... FROM ...