有两张表 A , BA:
ID TYPE DETAIL
101 类型1 类型101详细
201 类型2 类型201详细
103 类型1 类型103详细
104 类型1 类型104详细B:
ID_1 ID_2
101 201
102 202
103 203
...想实现同时选出 B 中两个字段在 A 中对应的 detail 信息select detail_1, detail_2 ... from ... detail_1 detail_2
类型101详细 类型201详细
类型102详细 类型202详细
类型103详细 类型203详细
ID TYPE DETAIL
101 类型1 类型101详细
201 类型2 类型201详细
103 类型1 类型103详细
104 类型1 类型104详细B:
ID_1 ID_2
101 201
102 202
103 203
...想实现同时选出 B 中两个字段在 A 中对应的 detail 信息select detail_1, detail_2 ... from ... detail_1 detail_2
类型101详细 类型201详细
类型102详细 类型202详细
类型103详细 类型203详细
比如两个表
A BID NAME ID SEX
1 AAA 1 0
2 BBB 2 1
3 CCC 3 0
5 DDD 4 0
如果你想知道一个人的名字和性别如果 where a.id = b.id
只得到id 是 1 2 3 的结果,因为必须完全相等
如果 a.id = b.id(+)表示只要a表有的,如果b表有,则显示,否则显示a,b表的显示null
也就是说,只要知道姓名不知道性别的也要显示
如果 a.id(+) = b.id正好相反
也就是说,只要有性别信息,不知道姓名也要显示
都会造成结果的重复,这个就没有办法了
你只能用 distinct去处重复了