mysql关联三个表查询 php

yishun223 发布于 2013/08/11 20:58
阅读 1K+
收藏 0

有三个表 
表一、form_element  表二、title 表三、student_title

其中表一字段 title_id 表二字段id 表三字段title_id值相同值相同 关联两个表这样写的

SELECT T.* FROM form_element E LEFT JOIN title T ON E.title_id=T.id  WHERE E.form_id='$form_id'  ORDER BY E.list DESC,E.element_id ASC

我想关联三个表应该怎么写?

我是这样写的 但总是不正确 ,上面关联两个表代码是正确的,我关联第三个表的原因是想限制一下第三个表中字段answer不为空

SELECT T.*,H.* FROM form_element E LEFT JOIN title T ON E.title_id=T.id LEFT JOIN student_title H ON T.id=H.title_id  WHERE E.form_id='$form_id' AND H.answer!='' ORDER BY E.list DESC,E.element_id ASC

麻烦各位帮帮忙,谢谢!

加载中
0
Tuesday
Tuesday
用sqlyog慢慢测哈..
0
Eddy8
Eddy8
第二个 left jion 条件改为 E.title_id=H.title_id
0
kidbei
kidbei

一种是left join,一种是直接from三个表

SELECT t1.*,t2.*,t3.*
 FROM form_element t1,title t2,student_title t3
WHERE t1.title_id = t2.id
AND t1.title_id = t3.title_id
AND t3.answer <> ''
ORDER BY.....;

如果你结果集只要一个表的内容,没必要用left join吧,

sql写得少,不知道对不对

0
哆啦A梦_
哆啦A梦_
SELECT T.*,H.* FROM form_element E
LEFT JOIN title T ON E.title_id=T.id
LEFT JOIN H ON E.title_id=H.title_id  
WHERE E.form_id='$form_id'
AND H.answer!=''
ORDER BY E.list DESC,E.element_id ASC


0
MIR_Chen
MIR_Chen
SELECT T.*,H.* FROM form_element E LEFT JOIN title T ON E.title_id=T.id LEFT JOIN  student_title H ON T.id=H.title_id  WHERE E.form_id='$form_id' AND H.answer!='' ORDER BY E.list DESC,E.element_id ASC
返回顶部
顶部