【问题标题】:adding a where clause on an inner join在内部连接上添加 where 子句
【发布时间】:2017-09-25 08:36:26
【问题描述】:

我有 2 个表: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子句

【问题讨论】:

  • 您可以在问题中添加示例行吗?

标签: mysql inner-join where-clause


【解决方案1】:

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

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%';

【讨论】:

  • 这意味着你可能没有任何数据
  • 不,我里面有数据
  • 然后在问题中添加示例数据,正如我已经说过的那样
  • 它应该可以正常工作。向我们展示您当前结果的快照。 @kingraphaII
猜你喜欢
  • 2016-08-17
  • 1970-01-01
  • 1970-01-01
  • 2012-01-21
  • 2011-12-02
  • 1970-01-01
  • 1970-01-01
  • 2017-07-04
  • 2012-09-04
相关资源
最近更新 更多