Mysql:使用=运算符进行字符串比较

时间:2016-01-15 03:16:21

标签: mysql join operators left-join

我是mysql的新手,现在我正在学习加入查询。当我比较字符串时,我得到了下面提到的奇怪的输出。我有两张桌子

<div class="container">
  <textarea rows="3" placeholder="Hello"></textarea>
</div>

表学生:

   MariaDB [test]> select * from classroom;
    +---------+-----------+
    | subject | classroom |
    +---------+-----------+
    | maths   |         1 |
    | englishs|         2 |
    +---------+-----------+

我试过这个查询

  MariaDB [test]> select * from student;
  +------+------+---------+
  | id   | name | subject |
  +------+------+---------+
  |    1 | abc  | maths   |
  |    2 | abcd | english |
  +------+------+---------+

,输出就像,

 select b.classroom,a.name,b.subject from student a left join classroom b
 on a.subject = b.subject ;

如果字符串在两个表格中都不匹配,我不明白为什么会得到第二行。

2 个答案:

答案 0 :(得分:1)

这与字符串比较无关。

您正在使用外部联接,但您期望的结果是内部联接给出的结果。

请查看this post,了解有关内部和外部联接的详细说明。

从那篇文章:

  
      
  • A和B的内连接给出A交叉B的结果,即维恩图交叉的内部。

  •   
  • A和B的外连接给出A联合B的结果,即维恩图联合的外部部分。

  •   

答案 1 :(得分:1)

尝试这可能会有效。

 select b.classroom,a.name,b.subject from student a,classroom b where a.subject = b.subject