表: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 left join fruits on fruits.s_id=suppliers.s_id;】
    如果我没理解错题意。。
    LZ应该没有理解inner join的含义
    inner join,等值连接, 只返回两个表中联结字段相等的行
    left join,左联接,返回包括左表中的所有记录和右表中联结字段相等的记录 
    把那个表写在from 后面那个表就有优先权。
      

  2.   

    你可以在select .....    from之间修改需要显示字段的先后顺序就可以了