Php Yii2带NOTNULL条件的左联接查询
我有一个图书借阅表,我想查询所有借阅的图书,借阅的图书不为空 表结构是Php Yii2带NOTNULL条件的左联接查询,php,yii2,Php,Yii2,我有一个图书借阅表,我想查询所有借阅的图书,借阅的图书不为空 表结构是 tbl_books id name 然后借书 tbl_borrowed_books id book_id borrowed_at 所以在我的问题中我有 $query = TblBooks::find()->leftJoin('tbl_borrowed_books','tbl_borrowed_books.book_id = tbl_books.id')->all(); 所
tbl_books
id
name
然后借书
tbl_borrowed_books
id
book_id
borrowed_at
所以在我的问题中我有
$query = TblBooks::find()->leftJoin('tbl_borrowed_books','tbl_borrowed_books.book_id = tbl_books.id')->all();
所以现在我想添加一个条件,在这里我想获取所有在tbl\u借来的\u图书中有记录的图书
如何检查NOTNULL
大概是
$query = TblBooks::find()->leftJoin('tbl_borrowed_books','tbl_borrowed_books.book_id = tbl_books.id')
->where('<>','') //stuck here on adding the not null condition
->all();
$query=TblBooks::find()->leftJoin('tbl\u借来的书','tbl\u借来的书.books\u id=tbl\u books.id')
->其中(“”,,)//添加not null条件时卡在这里
->全部();
如果坚持使用左联接
,则可以检查第二个表中不能将NULL
作为有效值的任何列。例如,您可以使用它的主键或外键列
$query=TblBooks::find()
->左连接(
“tbl_借来的书”,
'tbl\u借来的书.book\u id=tbl\u books.id'
)->其中(['not','tbl\u借来的书.book\u id',NULL])
->全部();
但最好使用内部联接
,因为它只返回两个表中存在匹配记录的记录。因此,它的作用与tbl_借来的书籍的作用完全相同。book_id不为NULL
$query=TblBooks::find()
->内部连接(
“tbl_借来的书”,
'tbl\u借来的书.book\u id=tbl\u books.id'
)->全部();
更多ActiveRecord
基于交叉借阅图书的解决方案:
$borrowedBooks = TblBooks::find()->joinWith('borrowedBooks', true, 'inner join')->all();
是否有任何原因使您专注于左连接
<代码>内部联接
仅返回两个表中存在的记录。这基本上就是你想要的,不是吗?