Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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 来自具有相同列名的两个表的数据_Php_Mysql_Sql_Join - Fatal编程技术网

Php 来自具有相同列名的两个表的数据

Php 来自具有相同列名的两个表的数据,php,mysql,sql,join,Php,Mysql,Sql,Join,我有一张供用户使用的桌子。但是,当用户对其配置文件进行任何更改时,我会将其存储在临时表中,直到我批准为止。然后将数据复制到活动表并从临时表中删除 我想要实现的是,当在管理面板中查看数据时,或者在用户可以在提交前进行双重检查的页面中,我想要编写一个查询,允许我从两个表中获取数据,其中两个表中的id都等于$userid。然后我想给他们显示一个表格,其中旧值显示在左栏,新值显示在右栏 我找到了一些sql解决方案,但我不知道如何在php中使用它们来回显结果,因为两者中的列具有相同的名称。这是您需要的查询

我有一张供用户使用的桌子。但是,当用户对其配置文件进行任何更改时,我会将其存储在临时表中,直到我批准为止。然后将数据复制到活动表并从临时表中删除

我想要实现的是,当在管理面板中查看数据时,或者在用户可以在提交前进行双重检查的页面中,我想要编写一个查询,允许我从两个表中获取数据,其中两个表中的id都等于$userid。然后我想给他们显示一个表格,其中旧值显示在左栏,新值显示在右栏


我找到了一些sql解决方案,但我不知道如何在php中使用它们来回显结果,因为两者中的列具有相同的名称。

这是您需要的查询。 假设您在两个表中有一个示例名称字段。表1登录和表2信息。现在

SELECT login.name as LoginName , information.name InofName 
FROM login left join information on information.user_id = login.id

现在,您可以在任何需要的地方使用
LoginName
InofName

向列名添加
AS
将允许您将其别名为其他名称

SELECT table1.name AS name1, table2.name AS name2, ...
  FROM table1
  INNER JOIN table2
    ON ...

使用MySQL
JOIN
。您可以在一个mysql查询中从两个表中获取所有数据

SELECT * FROM `table1`
JOIN `table2` ON `table1`.`userid` = `table2`.`userid`
WHERE `table1`.`userid` = 1

如果使用AS SQL关键字,则可以仅为该查询的结果重命名列

SELECT
    `member.uid`,
    `member.column` AS `oldvalue`,
    `edit.column` AS `newvalue`
FROM member, edit
WHERE
    `member.uid` = $userId AND
    `edit.uid` = $userId;

这样的东西应该适合你。虽然SQL不是我的强项,但我很确定,即使在具有正确字段和值的表上,此查询也不会按原样工作。

如何自动为多个列名别名?例如,如果我想从两个表中选择*,这不会起作用,否则表的列名应该不同,这样就可以了,但良好的做法是只选择需要的列。如何自动为多个列名别名?例如,如果我想从两个表中选择*,则不能。你必须自己给每个名字取别名。这很痛苦:)好的,让我试试。