如何在nette数据库中做一个简单的JOIN

How to do a simple JOIN in nette database

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

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

我找到了无数关于如何结合 where 子句、order by、group by 等进行连接的教程,但没有关于像这样的简单连接的单个教程。

我忘记说明了,我用的是PHP,所以我需要$context->table('Book')->join('author');之类的东西,但这当然不行。

在这种情况下您不需要加入,Nette 为您提供 table 之间的关系,因此您可以这样做:

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

我希望在书 table 中有列 author_id 是作者 table 的外键。

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

您不能使用 Nette 数据库进行连接,没有连接功能。例如,您可以通过按顺序引用另一个 table 列来强制加入,但它非常有限。如果你需要更复杂的连接,你最好使用 Dibi 而不是 Nette 数据库。