gpt4 book ai didi

php - Laravel - Mysql 不在连接中

转载 作者:行者123 更新时间:2023-11-29 20:08:56 24 4
gpt4 key购买 nike

我有三个表,即用户画廊订单。结构简单。 galleriesorders 都有一个名为 client_id 的列,充当 users 的外键我需要一个结果集,其中仅包含图库中存在但订单中不存在的用户的列表。我尝试过以下操作,但它为我提供了 orders

中存在的所有用户
$users  =   DB::table('galleries')
->join('users', 'users.id', '=', 'galleries.client_id')
->join('orders', 'orders.client_id', '=', 'users.id')
->select('galleries.client_id', 'galleries.path', 'users.first_name', 'users.last_name', 'orders.order_number')
->where('galleries.session_id', null)
->where('galleries.is_video', '1')
->where('galleries.is_thumb', '0')
->get();
dd($users);

上面的代码产生的查询是

    select
`galleries`.`client_id`,
`galleries`.`path`,
`users`.`first_name`,
`users`.`last_name`,
users.id,
`orders`.`order_number`
from
`galleries`
inner join
`users`
on
`users`.`id` = `galleries`.`client_id`
inner join
`orders`
on
`orders`.`client_id` = `users`.`id`
where
`galleries`.`session_id` is null
and
`galleries`.`is_video` = '1'
and
`galleries`.`is_thumb` = '0'

最佳答案

这个怎么样?不确定是否有效:

DB::table('galleries')
->join('users', 'users.id', '=', 'galleries.client_id')
->select('galleries.client_id', 'galleries.path',
'users.first_name', 'users.last_name')
->where('galleries.session_id', null)
->where('galleries.is_video', '1')
->where('galleries.is_thumb', '0')
->whereNotIn('client_id', function($query) {
$query->select('client_id')
->from('orders');
})
->get();

我已经删除了orders.order_number,因为根据您的要求,您提到选择用户没有订单的那些画廊。如果客户没有订单,如何加入订单?

我只是提供了一个额外的 whereNotIn ,它的读作是“订单表中不存在 client_id 的位置”。

关于php - Laravel - Mysql 不在连接中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40255875/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com