在内连接上添加where子句

时间:2017-09-25 08:36:26

标签: mysql inner-join where-clause

我有两张桌子:registered_students - cols:regnum和student - cols:regnum,name

所以我正在处理查询以从两个表中进行选择。它到目前为止工作,但现在我想为它添加一个where子句,并且它没有返回任何行。这是查询

SELECT registered_students.regnum
     , student.name
FROM registered_students
    INNER JOIN student ON registered_students.regnum=student.regnum

示例数据:

registered_students 1).reg3030 2). reg4032
              student 1).reg3030 John Doe 2).reg4032 Luke White

所以我需要添加一个像WHERE regnum LIKE 'reg4%'

这样的where子句

1 个答案:

答案 0 :(得分:0)

您必须指定别名,因为两个表中的列具有相同的名称,请尝试以下查询:

SELECT registered_students.regnum, student.name 
FROM registered_students JOIN student ON registered_students.regnum=student.regnum
WHERE registered_students.regnum LIKE 'reg4%';

输出还取决于两个表中reg4的数据的可用性。如果以上操作不起作用,您可以尝试以下操作:

  • 不区分大小写的匹配,例如WHERE LOWER(registered_students.regnum) LIKE 'reg4%'
  • LEFT JOIN如果您想要来自其中任何一个表的数据

<强>更新

使用更新的数据,可能是因为空格或值的开头有一个点,我会尝试以下内容:

SELECT registered_students.regnum, student.name 
FROM registered_students JOIN student ON TRIM(registered_students.regnum) = TRIM(student.regnum)
WHERE registered_students.regnum LIKE '%reg4%';