Heim  >  Artikel  >  Backend-Entwicklung  >  thinkphp四级关联查询怎么写 ,在线等

thinkphp四级关联查询怎么写 ,在线等

WBOY
WBOYOriginal
2016-06-23 13:44:261039Durchsuche

thinkphp四级关联查询怎么写?关系:A在B的aid,B在C的bid,C在D的Cid,怎样关联起来呢?
A-->B-->C-->D
M("D")->jion("A on B.aid=A.id)->jion("B on C.bid=B.id)->jion("C on D.cid=C.id) 这样写不对


回复讨论(解决方案)

你的表达式写错了
->join('A on B.aid=A.id')->join("B on C.bid=B.id")->join("C on D.cid=C.id") 

join() 里面直接写join吧

应该是join

你jion 直接改成join句子就对了 ,没问题!

你的表达式写错了
->join('A on B.aid=A.id')->join("B on C.bid=B.id")->join("C on D.cid=C.id") 


这样写不行,如果是->join('A on B.aid=A.id')->join("C on B.bid=C.id")->join("D on B.cid=D.id") 这样可以。

你jion 直接改成join句子就对了 ,没问题!


left、right、inner,不写都不对

你看看最后产生的 SQL 指令
是形如这样的,就符合你的要求了

select * from A left join b on a.id=b.aid    left join c on b.id=c.bid    left join d on d.id=d.cid

你看看最后产生的 SQL 指令
是形如这样的,就符合你的要求了

select * from A left join b on a.id=b.aid    left join c on b.id=c.bid    left join d on d.id=d.cid


产生的sql是这种,但是它报错了,[Err] 1054 - Unknown column 

1054 - Unknown column 未知的列
显然是有字段名写错了,请仔细检查一下

1054 - Unknown column 未知的列
显然是有字段名写错了,请仔细检查一下


我也知道报这个错是名字写错了,但是我核对了好几遍,确定名字没错

你把产生的 sql 指令放到 mysql 管理器或 phpmyadmin 中执行一下
看看原始的错误信息是什么

你把产生的 sql 指令放到 mysql 管理器或 phpmyadmin 中执行一下
看看原始的错误信息是什么


找到问题了,原来是这几个的顺序错了,把D防止最前面,然后是C,再次的B,再次是A
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn