逆天了!极端简单的left join 返回数据不对?
本帖最后由 Leedye123 于 2013-06-02 22:03:43 编辑
A 表共有2条ID不同的数据,与B表关联后, 居然返回多于2条数据,是怎么回事?
如:表A:
Aid Aname
1 1A
2 2A
表B:
Bid Bname
1 1B
2 2B
3 3B
进行左联接:
SELECT a.* from A a Left join B b on a.Aid =b.Bid
左联接后返回结果:
Aid Aname Bid Bname
1 1A 1 1B
2 2A 2 2B
3 3B
怎么回事呢?
------解决方案--------------------多检查自己写的脚本,就知道是怎么回事了
像你写的查询语句绝对不会返回你写的结果的
查询a.* 怎么会有Bid Bname
------解决方案--------------------对于楼主的这个问题,我只能说:
无图无真相------解决方案--------------------一定是楼主打开的方式不对,这不可能
------解决方案--------------------SQL> create table b(bid int,bname varchar2(20));
表已创建。
SQL> insert into a select 1,'1a' from dual;
已创建 1 行。
SQL> insert into a select 2,'2a' from dual;
已创建 1 行。
SQL> commit;
提交完成。
SQL> insert into b select 1,'1b' from dual;
已创建 1 行。
SQL> insert into b select 2,'2b' from dual;
已创建 1 行。
SQL> insert into b select 3,'3b' from dual;
已创建 1 行。
SQL> commit;
SQL> select * from a;
AID ANAME
---------- --------------------
1 1a
2 2a
SQL> select * from b;
BID BNAME
---------- --------------------
1 1b
2 2b
3 3b
SQL> select a.* from a left join b on a.aid=b.bid;
AID ANAME
---------- --------------------
1 1a
2 2a