将一个表的值与另一个表相关联

时间:2013-05-08 01:55:30

标签: mysql database select

我有两张桌子。一个名为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的值?

3 个答案:

答案 0 :(得分:2)

SELECT u.user_id, u.username, s.acct_status_desc status 
FROM usertbl u, accountstatustbl s
WHERE u.acct_status = s.acct_status
希望我能帮到你。

答案 1 :(得分: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

答案 2 :(得分:1)

您可以使用INNER JOIN,假设acct_status中的usertbl没有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

的更多信息