$select->from(array('b1'=>'books_master'), 'b1.book_id');
$select->joinLeft(array('b2'=>'books_details'), 'b1.book_id = b2.book_id', 'b2.book_id');
这将返回null
,即如果在右表中的匹配行中找不到b2.book_id
的值。
记录位于books_master
但不在books_details
。
请指导我。
答案 0 :(得分:0)
joinleft
方法的第三个参数必须是您要获取的列的数组。
使用joinLeft(table, condition, [columns])
方法LEFT JOIN 。
包含左操作数表中的所有行,匹配右操作数表中的行,如果没有与左表匹配的行,则右操作数表中的列用
NULL
填充。
你的代码应该是:
$select->from(array('b1'=>'books_master'), 'b1.book_id');
$select->joinLeft(array('b2'=>'books_details'), 'b1.book_id = b2.book_id',
array('b2.book_id'));