table1
字段 A
值 a
b
c
table2
字段 A B
a a1
a a2
a a3
b a1
b a2
b a3
c a1
对两个表执行连接查询
查询条件1 B = "a1"
查询结果
A B
a a1
b a1
c a1
查询条件2 B = "a2"
查询结果
A B
a a2
b a2
c null
字段 A
值 a
b
c
table2
字段 A B
a a1
a a2
a a3
b a1
b a2
b a3
c a1
对两个表执行连接查询
查询条件1 B = "a1"
查询结果
A B
a a1
b a1
c a1
查询条件2 B = "a2"
查询结果
A B
a a2
b a2
c null
解决方案 »
- 这样简单的Mysql语句如何写?
- mysql如何实现字段值+1
- mysql在存储过中执行的sql语句不能通过镜像同步到从数据库中,请教解决办法
- MySql中如何查询多个具有相同前缀名的表?在线等高人讲解
- MYSQL的数据库写入???
- 请教:关于导出数据库文件的问题
- 在检索数据库数据时,提示“Can't create/write to file 'c:\windows\temp\#sql_7f0_0.MYI'错误。。。
- 多线程中使用mysql的c api是安全的吗??
- mysql 奇怪的问题-很急,解决不了都回不了家过年了!!
- 请问mysql如何控制表的记录总数!
- linux MYSQL 的困惑
- 检索匹配的问题
a.A,
b.B
from
table1 a
left join
table2 b
on
a.a=b.a
and
b.b='a1' -- 或者b.b='a2'
+---+
| a |
+---+
| a |
| b |
| c |
+---+
3 rows in set (0.00 sec)mysql> select * from table2;
+------+------+
| a | B |
+------+------+
| a | a1 |
| a | a2 |
| a | a3 |
| b | a1 |
| b | a2 |
| b | a3 |
| c | a1 |
+------+------+
7 rows in set (0.00 sec)mysql> select table1.a,t.b
-> from table1 left join
-> (select * from table2 where b='a1') t on table1.a=t.a;
+---+------+
| a | b |
+---+------+
| a | a1 |
| b | a1 |
| c | a1 |
+---+------+
3 rows in set (0.00 sec)mysql> select table1.a,t.b
-> from table1 left join
-> (select * from table2 where b='a2') t on table1.a=t.a;
+---+------+
| a | b |
+---+------+
| a | a2 |
| b | a2 |
| c | NULL |
+---+------+
3 rows in set (0.00 sec)mysql>