2013-06-21 60 views
0

所以即时将我的查询移动到PDO,并即时学习一步一步。PDO查询帮助

我想通购买试验和错误,不像在师范学校mysql_你不能在一段时间等

做了一段时间,所以我尝试连接表中查询得到预期的结果。

下面的查询工作

$data = $conn->query('SELECT nieuws.id, nieuws.titel, nieuws.intro, nieuws.inhoud, nieuws.datum, nieuws.auteur, nieuws.categorie, nieuws.tags,nieuws.plaatje, nieuws.plaatje_url,nieuws.mp3,nieuws.mp3_url,nieuws.youtube,nieuws.youtube_url, reacties.id, reacties.nieuwsid, reacties.submitter,reacties.reactie 
FROM nieuws 
INNER JOIN reacties 
ON nieuws.id = reacties.nieuwsid 
ORDER BY reacties.nieuwsid DESC LIMIT 3 
'); 

然而,这仅仅返回1项,我想查询返回所有的 “呼号” entrys和corrosponding “reacties”(基于ID)

翻译荷兰语单词为英语:Nieuws = news,reacties = comment

因此,它需要获取id1与所有数据为例,并且还得到nieuwsid1数据。 然后做到这一点对所有IDX导致

$data = $conn->query('SELECT * FROM nieuws ORDER BY id DESC limit 3'); 

得到所有的新闻,howver我没有任何反应,因为即时通讯越来越文章等在

foreach($data as $row)  

循环我无法启动第二个foreach是对的?

+0

你为什么不呢?该查询已执行,您正在使用PDO返回的结果集,随时可以再次查询。然而,JOIN会更适合你的情况...只要你的查询,如果需要的话,使用'GROUP_CONCAT' ... –

回答

1

嗯,你使用的是INNER JOIN,它只返回表B中有条目的条目,所以如果“新闻”条目没有任何评论,它将不会被返回。您想要的是LEFT OUTER JOIN

+0

thnx格雷格,你可以详细说明左外部连接,谷歌似乎并不想要今天有帮助。 – defiancenl

+0

我一直发现这是有帮助的 - http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html –

+0

我已经找到了另一个链接,将会读取你的太tho ... thnx男人离开外部联接是关键 – defiancenl