下面是我的sql语句,我想实现多表查询
select DBSaaS.TPartnerShip.*,DBSaaS.tfield.tf_name,DBSaaS.tprovince.tp_name,DBSaaS.tarea.ta_name 
from 
DBSaaS.tpartnerpos 
inner join DBSaaS.TPartnerShip ,
DBSaaS.tprovince 
inner join DBSaaS.tarea ,
DBSaaS.tarea
inner join DBSaaS.TPartnerShip 
on
DBSaaS.TPartnerShip.tf_id = DBSaaS.tfield.tf_id
on
DBSaaS.tprovince.tp_id = DBSaaS.tarea.tp_id 
on
DBSaaS.TPartnerShip.ta_id=  DBSaaS.tarea.ta_id 不知道为什么出错,请大虾帮帮忙

解决方案 »

  1.   

    这么多inner Join,昏了。这种写法头痛。
      

  2.   

     或者你将每个连接写清楚点,a inner join b on a.co1=b.co1 inner join c on a.col2=c.col2
    这种格式试试
      

  3.   

    select DBSaaS.TPartnerShip.*,DBSaaS.tfield.tf_name,DBSaaS.tprovince.tp_name,DBSaaS.tarea.ta_name 
    from DBSaaS.tpartnerpos DBSaaS.tprovince 
    on DBSaaS.TPartnerShip.tf_id = DBSaaS.tfield.tf_id
    inner join DBSaaS.tarea ,DBSaaS.tarea
    on DBSaaS.tprovince.tp_id = DBSaaS.tarea.tp_id 
    inner join DBSaaS.TPartnerShip 
    on DBSaaS.TPartnerShip.ta_id=  DBSaaS.tarea.ta_id
    这样写清晰一些,但DBSaaS后面是列名吧,但from DBSaaS.tpartnerpos DBSaaS.tprovince 这里的DBSaaS后面跟着的是什么?from 后面只有表名吧。为什么不把表名用简单的别名代替啊!这样看着你写的代码太乱了!
      

  4.   

    默认就是内连接没必要用inner join on吧,直接写不行吗?对,用别名
      

  5.   

    默认就是内联,何必写inner呢?
    tpartnerpos这个表在哪里?根本没用到还往上写?
    为什么还使用数据库名字?
    为什么表不用别名?
      

  6.   

    为什么要连接两次DBSaaS.TPartnerShip,
    select ts.*,tf.tf_name ,tp.tf_name,ts.tf_name 
    from DBSaaS.TPartnerShip  ts
    inner join DBSaaS.tfield  tf
    on  ts.tf_id =tf.tf_id
    inner join DBSaaS.tprovince tp 
    on tf.tf_id=tp.tp_id
    inner join DBSaaS.tarea ta
    on tp.tp_id=ta.tp_id and ts.ta_id=ta.ta_id
      

  7.   

    select ts.*,tf.tf_name ,tp.tf_name,ts.tf_name 
    from DBSaaS.TPartnerShip  ts
    inner join DBSaaS.tfield  tf
    on  ts.tf_id =tf.tf_id
    inner join DBSaaS.tprovince tp 
    on tf.tf_id=tp.tp_id
    inner join DBSaaS.tarea ta
    on tp.tp_id=ta.tp_id and ts.ta_id=ta.ta_id
      

  8.   

    select ts.*,tf.tf_name ,tp.tf_name,ts.tf_name 
    from DBSaaS.TPartnerShip  ts
    inner join DBSaaS.tfield  tf
    on  ts.tf_id =tf.tf_id
    inner join DBSaaS.tprovince tp 
    on tf.tf_id=tp.tp_id
    inner join DBSaaS.tarea ta
    on tp.tp_id=ta.tp_id and ts.ta_id=ta.ta_id