如何在nette数据库中进行简单的JOIN

时间:2016-03-05 16:14:50

标签: database left-join nette

如何在nette数据库中进行非常简单的连接,从而产生这样的查询?

SELECT * FROM Book LEFT OUTER JOIN Author ON Book.author_id = Author.id

我已经找到了关于如何加入的无限教程,其中包括clausules,order by,group by和what not,但不是关于这样的简单连接的单一教程。

我忘了指定,我使用PHP,所以我需要像$context->table('Book')->join('author');这样的东西,但那当然不起作用。

2 个答案:

答案 0 :(得分:1)

在这种情况下你不需要加入,Nette为你提供表之间的关系,所以你可以这样做:

foreach($connection->table('book') as $book){
    echo 'Book name: '.$book->name.'<br>'
    echo 'Book autor: '.$book->author->name.'<br>' 
}

我希望在书表中有专栏author_id,这是作者表的外键。

答案 1 :(得分:1)

问题已经回答了,所以我只添加了一个注释。

你无法使用Nette Database进行连接,没有连接功能。例如,您可以通过引用另一个表列来强制实施连接,但它非常有限。如果您需要更复杂的连接,最好使用Dibi而不是Nette Database。