好的,所以我有两个表,一个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中的列?
答案 0 :(得分:1)
在MySQL中,您在select语句中指定的是结果集中调用的内容,因此您需要告诉它要给您什么。你用AS command
做到这一点SELECT users.id AS user_id ... FROM ...
这样你可以随意调用它
或使用
从新闻中获取user_idSELECT 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'];