表:fruits的字段f_id为primary key表:suppliers的字段s_id为primary key与fruits的s_id有相同的数据类型然后使用这两句查询语句:
1、select suppliers.s_id,s_name,f_name,f_price from suppliers inner join fruits on suppliers.s_id=fruit.s_id;
查询的都结果如下:
2、select suppliers.s_id,s_name,f_name,f_price from fruits inner join suppliers on fruits.s_id=suppliers.s_id;
查询到的结果如下:
可以确定的是查询的结果肯定是一样的,但是问题是使用第一句查询语句是时的条件是suppliers.s_id=fruit.s_id,我的理解是,当我们连接两张检索数据的时候,检索的方式是首先逐行扫描suppliers表中的记录,只有条件suppliers.s_id=fruit.s_id匹配,结果才会被检索出来,所以首先要从表suppliers的s_id匹配表fruits的s_id的相等项,按道理说第一句查询语句查询到的结果应该是按照表suppliers的s_id顺序显示,为什么两个个查询语句的显示结果的都是按照friuts本身的s_id的排列顺序,或者说怎样才能按照suppliers本身的s_id排列顺序?
1、select suppliers.s_id,s_name,f_name,f_price from suppliers inner join fruits on suppliers.s_id=fruit.s_id;
查询的都结果如下:
2、select suppliers.s_id,s_name,f_name,f_price from fruits inner join suppliers on fruits.s_id=suppliers.s_id;
查询到的结果如下:
可以确定的是查询的结果肯定是一样的,但是问题是使用第一句查询语句是时的条件是suppliers.s_id=fruit.s_id,我的理解是,当我们连接两张检索数据的时候,检索的方式是首先逐行扫描suppliers表中的记录,只有条件suppliers.s_id=fruit.s_id匹配,结果才会被检索出来,所以首先要从表suppliers的s_id匹配表fruits的s_id的相等项,按道理说第一句查询语句查询到的结果应该是按照表suppliers的s_id顺序显示,为什么两个个查询语句的显示结果的都是按照friuts本身的s_id的排列顺序,或者说怎样才能按照suppliers本身的s_id排列顺序?
如果我没理解错题意。。
LZ应该没有理解inner join的含义
inner join,等值连接, 只返回两个表中联结字段相等的行
left join,左联接,返回包括左表中的所有记录和右表中联结字段相等的记录
把那个表写在from 后面那个表就有优先权。