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

时间:2012-04-16 05:00:39

标签: php mysql sql join

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

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

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

4 个答案:

答案 0 :(得分:7)

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

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

答案 1 :(得分:1)

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

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

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

答案 2 :(得分: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不是我的强项,但我很确定这个查询不会按原样运行,即使在具有正确字段和值的表上也是如此。

答案 3 :(得分:0)

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

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