2013-05-08 22 views
0

我有两个表。一个名为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?

回答

2
SELECT u.user_id, u.username, s.acct_status_desc status 
FROM usertbl u, accountstatustbl s 
WHERE u.acct_status = s.acct_status 

希望我帮了忙。

+0

MySQL允许错误: “在哪里” 是下划线。 – chrismsawi 2013-05-08 02:11:55

+0

对不起,我在查询中使用了保留的“as”。现在它是固定的。 – 2013-05-08 02:41:18

+0

谢谢你的更正,并且新的sql语句现在正在工作!^ _^ – chrismsawi 2013-05-08 02:47:07

2

你可以试试这个。

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

谢谢!这件事情做魔术!^_^ – chrismsawi 2013-05-08 02:10:45

1

您可以使用INNER JOIN假设acct_statususertbl没有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

+0

谢谢!这也是诀窍!^_ ^ – chrismsawi 2013-05-08 02:25:28

相关问题