mysql - 连接存在引用的表

标签 mysql laravel join laravel-5.3

我希望使用 Laravel 创建一个联接,如果联接引用不存在,它会选择整个表,否则会联接其他表。

DB::table('tInfo')
->join('tStaff', 'tStaff.tourID', '=', 'tInfo.tcode')->get()

tInfotStaff 是“一对多”关系,并且 tStaff 将具有链接到特定游览的行

我删除了“tStaff”引用,并注意到查询没有返回行(不包含错误)。我认为这是因为连接无效。

如何解决这个问题?

最佳答案

请尝试一下这个

  DB::table('tInfo as inf')
              ->whereNotExists(function ($query) {
            $query->select(DB::raw('tourID'))
                  ->from('tStaff')
                  ->whereRaw('inf.tcode= tStaff.tourID');
        })
        ->get();

关于mysql - 连接存在引用的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41734262/

相关文章:

mysql - Rails 事件记录的选择和组有什么区别?

sql - 使用带有多个 where 子句的查询生成器的连接语句

mysql - SQL 拍卖根据不同表中的信息创建获胜者列表

mysql - 在 Rails 中查询关联模型的正确语法

根据条件进行 JOIN 的 MySQL 语法

php - 在 codeigniter 中使用回调表单验证来比较日期

php - mysql_fetch_array 不工作

php - 将多个文件名 (img_path) 保存在一行中,以逗号或 | 分隔

sql - Laravel - 播种大型 SQL 文件

php - Laravel hasManyThrough 对中间模型有约束