php - Laravel:左连接查询

标签 php mysql laravel laravel-5 laravel-5.4

我有这样的 SQL 查询,它工作正常:

SELECT A.program_id FROM A
LEFT JOIN B
ON A.program_id = B.program_id
WHERE
B.program_id IS NULL

但我希望它重写成 LARAVEL 风格,像这样:

\DB::table('A')
->join('B', 'A.program_id', '=', 'B.program_id')
->select('A.program_id')
->whereNull('B.program_id')
->get()->toArray();

但是这段代码返回了 0 个结果。

最佳答案

您正在使用join 而不是left join

试试这个

\DB::table('A')
->leftjoin('B', 'A.program_id', '=', 'B.program_id')
->select('A.program_id')
->whereNull('B.program_id')
->where('A.student_id', '=', 5)
->get()->toArray();

它会产生一个类似的查询 enter image description here

关于php - Laravel:左连接查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44928276/

相关文章:

php - 在 laravel 4 中生成相对于基本 url 的 url

mysql - 基于三个表的层次结构

php - 如何插入连接

php - 尝试在 Laravel 中回滚迁移时出现回退错误

带有 2 个参数的 javascript 函数不起作用

php - 使用 fputcsv 导出 mysql 查询数组

php - 我必须在构造函数的第一行调用 parent::__construct() 吗?

java - 使用 MySQL 和 Java 将包含双引号的抓取页面插入数据库

php - 有没有办法将选定的属性组合到返回的 Laravel 模型中的特定属性中?

php - laravel elasticsearch babenkoivan/elastic-adapter模型关系