MySQL INNER JOIN具有不同的列名

时间:2014-10-27 18:59:52

标签: php mysql pdo 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']访问用户ID。所以看起来连接使用table2中的列名,尽管我希望它们将它映射到table1的列名。因此,即使在users表中调用了id列,我也希望在user_id下访问它,因为我在JOIN查询中指定了它。

我需要这个,因为如果我需要table1中的id,它们都会映射到名为id的列,而我只能获得id的{​​{1}}用户表。

有没有办法做到这一点?从table2?列中的列名称访问table2中的列?

2 个答案:

答案 0 :(得分:1)

在MySQL中,您在select语句中指定的是结果集中调用的内容,因此您需要告诉它要给您什么。你用AS command

做到这一点
SELECT users.id AS user_id ... FROM ...

这样你可以随意调用它

或使用

从新闻中获取user_id
SELECT news.user_id ... FROM ...

答案 1 :(得分:0)

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