我是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 ;
如果字符串在两个表格中都不匹配,我不明白为什么会得到第二行。
答案 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