Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用不同列名的MySQL内部联接_Php_Mysql_Pdo_Inner Join - Fatal编程技术网

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 ...