SQL INNER JOIN显示特定值

时间:2019-05-01 17:29:21

标签: sql mariadb

我需要编写一个查询,该查询必须包括对INNER JOIN的使用,但无法正确编写它。

在PhpMyAdmin中,我创建了一个包含两个相关用户表的数据库:

表#1称为“用户类型”,有两列:

1.typnum(自动递增)

2.typdsc-具有三种类型的值:无效,访客和网站管理员

表#2称为“用户”,有五列:

  1. usrnum
  2. usrlogin
  3. usrpassword
  4. usrrealname
  5. usrtyp(我与typnum连接的外键)

我需要显示的是Guest和Webmasters的以下记录:usrlogin,usrpassword,usrrealname及其类型名称(在最后一个使用内部联接时)。 换句话说,我需要显示不是“非活动”的记录,显示它们的类型是什么,以及除usrnum

之外的其余值。

这是我尝试为此编写的查询:

SELECT users.usrlogin,users.usrpassword,users.usrrealname AND user.usrtyp
FROM users 
WHERE usrtyp NOT IN 'Inavctive' AND INNER JOIN userstypes ON users.usrtyp = userstypes.typnum

提前谢谢!

2 个答案:

答案 0 :(得分:1)

尝试一下:

SELECT u.usrlogin, u.usrpassword, u.usrrealname, ut.typdsc 
FROM users u INNER JOIN userstypes ut
ON u.usrtyp = ut.typnum
WHERE ut.typdsc <> 'Inactive'

答案 1 :(得分:0)

顺序在sql中的最后位置很重要。同时删除随机的AND

SELECT users.usrlogin,users.usrpassword,users.usrrealname, userstypes.usrtyp
FROM users 
INNER JOIN userstypes ON users.usrtyp = userstypes.typnum
WHERE usrtyp NOT IN ('Inavctive')