代码之家  ›  专栏  ›  技术社区  ›  Trombone0904

从mysql中获取数据,其中两列具有相同的名称[重复]

  •  -1
  • Trombone0904  · 技术社区  · 2 年前

    我有一个用户表。但是,当用户对他们的配置文件进行任何更改时,我会将它们存储在临时表中,直到我批准它们。然后,数据被复制到活动表中,并从临时表中删除。

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

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

    0 回复  |  直到 12 年前
        1
  •  11
  •   Ignacio Vazquez-Abrams    12 年前

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

    SELECT table1.name AS name1, table2.name AS name2, ...
      FROM table1
      INNER JOIN table2
        ON ...
    
        2
  •  1
  •   Mark Tomlin    12 年前

    如果使用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
  •  1
  •   Joshua Dance Muhammad Raheel    10 年前

    这是您需要的查询。 例如,假设您在两个表中有name字段。表一登录信息和表二信息。现在

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

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

        4
  •  -2
  •   s.webbandit    12 年前

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

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