sql="select a.*,b.* from Supply_Listing a ,Buy_Listing b" 笛卡儿乘积,得到Supply_Listing记录数 * Buy_Listing记录数,正常sql="select a.* from Supply_Listing a union all select b.* from Buy_Listing b" a与b的字段不对应,当然会报错sql="select a.*,b.* from 表1 a join 表2 b on 条件" 改为内连接:select a.*,b.* from 表1 a inner join 表2 b on 条件
1.sql="select a.*,b.* from Supply_Listing a ,Buy_Listing b"没条件,返回的是笛卡尔积,=t1的行数*t2的行数,当然多,相当于cross join2.sql="select a.*,b.* from 表1 a join 表2 b on 条件"内连结,只返回匹配条件的,on 后的条件怎么写的?
to:ghostzxp(幽灵) sql="select a.*,b.* from Supply_Listing a left outer join Buy_Listing b on a.ProductID<40 and b.ProductID<5" 结果依然是那样,也就是你们说的笛卡尔积多个 to: pbsql(风云) sql="select a.*,b.* from Supply_Listing a inner join Buy_Listing b on a.ProductID<40 and b.ProductID<5" 结果也是没有变化 到底怎么回事啊?我都糊涂啦!真谢谢你们的回答,不知道后来的智者能不能棒我解决问题啊!
连接条件都没有: sql="select a.*,b.* from Supply_Listing a inner join Buy_Listing b on a.ProductID=b.ProductID b.ProductID<5"
一看不对: sql="select a.*,b.* from Supply_Listing a inner join Buy_Listing b on a.ProductID=b.ProductID and b.ProductID<5"
on a.ProductID<40 and b.ProductID<5这是分别找出a.ProductID<40 和 b.ProductID<5结果集后两表的笛卡尔积,只是剔除了一些纪录然后再笛卡尔积,有这样的条件么: a.ProductID<40 and b.ProductID<5 and a.ProductID=b.ProductID,这就少了
1. 笛卡儿乘积 了 2. sql="select a.* from Supply_Listing a union all select b.* from Buy_Listing b" ---> 按楼上 星的 或者,你想办法补充列吧 比如a表比b表多一列,类型为char sql="select a.* from Supply_Listing a union all select b.* ,'空' from Buy_Listing b"
笛卡儿乘积,得到Supply_Listing记录数 * Buy_Listing记录数,正常sql="select a.* from Supply_Listing a union all select b.* from Buy_Listing b"
a与b的字段不对应,当然会报错sql="select a.*,b.* from 表1 a join 表2 b on 条件"
改为内连接:select a.*,b.* from 表1 a inner join 表2 b on 条件
sql="select a.*,b.* from Supply_Listing a left outer join Buy_Listing b on a.ProductID<40 and b.ProductID<5"
结果依然是那样,也就是你们说的笛卡尔积多个
to: pbsql(风云)
sql="select a.*,b.* from Supply_Listing a inner join Buy_Listing b on a.ProductID<40 and b.ProductID<5"
结果也是没有变化
到底怎么回事啊?我都糊涂啦!真谢谢你们的回答,不知道后来的智者能不能棒我解决问题啊!
sql="select a.*,b.* from Supply_Listing a inner join Buy_Listing b on a.ProductID=b.ProductID b.ProductID<5"
sql="select a.*,b.* from Supply_Listing a inner join Buy_Listing b on a.ProductID=b.ProductID and b.ProductID<5"
a.ProductID<40 and b.ProductID<5 and a.ProductID=b.ProductID,这就少了
2. sql="select a.* from Supply_Listing a union all select b.* from Buy_Listing b"
---> 按楼上 星的
或者,你想办法补充列吧
比如a表比b表多一列,类型为char
sql="select a.* from Supply_Listing a union all select b.* ,'空' from Buy_Listing b"