日期:2014-05-18  浏览次数:20447 次

join连接的困惑,请帮帮我吧!
两个表,这是第一个表(pers)的字段和数据;
nmaes         addr           age           code
王成兵 绵阳 25 1
刘德华 香港 55 0
刘和在 日本 33 1
吴达在 中国 44 1
李知在 广东 34 1

这是第二个表(perss)的字段和数据.
nmaes         addr           age           code
李鹏小 四川 34 1
周小庆 东海 34 1
吴小后 北京 56 0
郭小中 台湾 43 0
瘟神人 广东 23 1

我用这条语句,
select   *   from   pers   as   a   join   perss   as   b   on(a.code=b.code)   where   a.code= '1 '   or   b.code= '1 '
本想得到code=1的内容显示出来,而结果去是他的笛卡尔值,为什么呢!
这是用上面那条语句得到的结果:
nmaes         addr           age           code             nmaes         addr           age           code
王成兵 绵阳 25 1 李鹏小 四川 34 1
王成兵 绵阳 25 1 周小庆 东海 34 1
王成兵 绵阳 25 1 瘟神人 广东 23 1
刘和在 日本 33 1 李鹏小 四川 34 1
刘和在 日本 33 1 周小庆 东海 34 1
刘和在 日本 33 1 瘟神人 广东 23 1
吴达在 中国 44 1 李鹏小 四川 34 1
吴达在 中国 44 1 周小庆 东海 34 1
吴达在 中国 44 1 瘟神人 广东 23 1
李知在 广东 34 1 李鹏小 四川 34 1
李知在 广东 34 1 周小庆 东海 34 1
李知在 广东 34 1 瘟神人 广东 23 1

请帮我指出这条语句的错误!
谢谢!

------解决方案--------------------
select * from pers where code=1
unoin
select * from perss where code=1
------解决方案--------------------
select * from pers where code = 1
union all
select * from perss where code = 1