我正在尝试比较两个表以检查用户数据是否已在另一个表中退出。我显示了一些他们谈论whereRaw的帖子,但详细信息还不够,我尝试运行查询,但没有获得所需的信息。

更新
我有2张桌子,一张是两个人之间的挑战

Challenge Table  id,user_one, user_two, data_one, data_two,winner_id


我的第二张桌子是

vote Table id, user_id, battle_id, voted_user


我想检查用户是否已经对该表进行投票,如果是,请跳过该挑战表并向用户显示剩余表数据。

$challenges = DB::table('challenges')->whereRaw([
            ['challenges.user_one', '!=', $uid],
            ['challenges.id', '!=', 'vote.id'],
        ])->orWhereRaw([
            ['challenges.user_one', '!=', $uid],
            ['challenges.id', '!=', 'vote.id'],
        ])->get();

最佳答案

您可以使用crossJoin实现它

$challenges = DB::table('challenges')->crossJoin('vote')
        ->where('challenges.user_one', '!=', $uid)
        ->where('challenges.id', '!=', 'vote.id')
        ->orWhere('challenges.user_one', '!=', $uid)
        ->orWhere('challenges.id', '!=', 'vote.id')->get();


参考:https://laravel.com/docs/5.8/queries

关于php - 如何在laravel 5.8中合并两个sql表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59936340/

10-12 13:07
查看更多