【问题标题】:Relating the values one table to another table将一张表与另一张表的值相关联
【发布时间】:2013-05-08 01:55:29
【问题描述】:

我有两张桌子。一个名为 usertbl,具有列 user_id、user_name 和 acct_status。 acct_status 值的可能值为 0、1、2、3。另一个名为 accountstatustbl 的表具有以下列 - acct_status 和 acct_status_desc,当 acct_status = 0、acct_status_desc = 注册、1 = 活动、2 = 非活动和 3 =停用。现在,我应该如何查询我的数据库以提供以下输出:

user_id     user_name     status
0000000     user1         enrolled
1234567     user2         active
9999999     user3         deactived

而不是给我值 0、1 和 3?

【问题讨论】:

    标签: mysql database select


    【解决方案1】:

    你可以试试这个。

    SELECT user.user_id, user.user_name, status.description
    FROM usertbl user left outer join accountstatustbl status
    on user.acct_status=status.acct_status
    

    【讨论】:

      【解决方案2】:
      SELECT u.user_id, u.username, s.acct_status_desc status 
      FROM usertbl u, accountstatustbl s
      WHERE u.acct_status = s.acct_status
      

      希望我能帮上忙。

      【讨论】:

      • 抱歉,我在查询中使用了保留的“as”。现在它已经修复了。
      • 谢谢指正,新的sql语句现在可以运行了!^_^
      【解决方案3】:

      您可以使用INNER JOIN,假设usertbl 中的acct_status 没有NULL 值:

      SELECT a.user_id, 
             a.user_name, 
             b.status_desc AS status 
      FROM   usertbl a 
             INNER JOIN accountstatustbl b 
                     ON b.acct_status = a.acct_status 
      

      您还可以阅读 MySQL JOIN Syntax 以了解有关 joins 的更多信息

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-09-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-23
        • 1970-01-01
        相关资源
        最近更新 更多