求一个SQL查询语句,一个表为主表,包含另外1个表的2个字段

求SQL查询语句,一个表为主表,包含另外1个表的2个字段,根据用户ID主表记录全部显示,同时要根据另外1个表的2个字段来显示信息。如主表字段如下
table1:
id name a1 a2
1 语文 11 12
2 数学 21 22
3 英语 31 32
4 物理 41 42
5 化学 51 52

table2:一条记录只记录a1或a2的值,也就是其中总有一个为0
id uid a1 a2
1 1 11 0
2 1 0 22
3 1 0 12
4 1 41 0
5 1 51 0
6 1 0 42
7 2 0 52

要显示如下结果:根据uid=1,table1的记录全部显示,如果table2中有a1或a2就显示值,否则值为0
id uid name a1 a2
1 1 语文 11 12
2 1 数学 0 22
3 1 英语 0 0
4 1 物理 41 42
5 1 化学 51 0

第1个回答  2016-08-19
需要用连接查询来处理。
如有以下2张表:

查询2张表id和name字段内容完全相同的内容,可用如下语句:

select a.* from test a,test1 b where a.id=b.id and a.name=b.name;

结果:

说明,两表连接where条件要写上关联条件,因为提问是两个字段完全相等,所以就写作:a.id=b.id and a.name=b.name
相似回答