我在获取LALAVEL中的数据时遇到一些问题

我有companies号桌和addresses号桌,想要得到所有地址相同的公司

一个例子

公司表

id name created_at
1 company 1 30/01/2023
2 company 2 30/01/2023
3 company 3 30/01/2023
4 company 4 30/01/2023

地址表

id company_id a1 a2 city state
1 1 aa1 aa1 cc1 ss1
2 2 aa2 aa2 cc2 ss2
3 3 aa3 aa3 cc3 ss3
4 4 aa1 aa1 cc1 ss1

我需要ID为1、4的公司,因为它们的地址相同

id name
1 company 1
4 company 4

推荐答案

我马上想到的是使用SQL联接来实现这一点,即使用自联接将表与其自身进行比较,同时使用子查询来确保地址信息在要比较的表上可用.请try 下面的查询,应该会有所帮助:

SELECT t2.c2_id as id, t2.c2_name as name
FROM (
SELECT c.id as c1_id, c.name as c1_name, CONCAT(addresses.a1, ' ', addresses.a2, ' ', addresses.city, ' ', addresses.state) as c1_address
FROM companies c
JOIN addresses 
ON c.id = addresses.company_id
) t1, 
(
SELECT c.id as c2_id, c.name as c2_name, CONCAT(addresses.a1, ' ', addresses.a2, ' ', addresses.city, ' ', addresses.state) as c2_address
FROM companies c
JOIN addresses 
ON c.id = addresses.company_id
) as t2
WHERE c1_id <> c2_id
AND c1_address = c2_address;

https://sqlize.online/s/dp

Laravel相关问答推荐

Laravel中如何动态更改路由链接?

如何使用PHP版本8.2.6安装beyondcode/laravel-websockets软件包?

Ziggy 路由默认为查询字符串

嵌套数组请求的 Laravel 验证,其中如果整数之一为零,则另一个应大于零

如何在 Laravel 9 中获取带分页的订单列表?

无法使用 Dompdf Laravel 9 加载图像

Laravel 5 将错误发送到Electron邮件

PHP Laravel:如何设置或获取会话数据?

刚安装 Lumen 并得到 NotFoundHttpException

在Laravel 5中通过ID和所有递归获取记录

升级到 laravel 5.4 后调用未定义的方法

致命错误:找不到类App\Http\Controllers\Redirect

Twilio 查找 API 不起作用?

带有时间戳的 Laravel 5.1 eloquent::attach() 方法

laravel 5 - assets资源 list 中未定义 css 文件?

Laravel 5.3 Electron邮件队列中不允许序列化关闭

Laravel 5:完整性约束违规:1452 无法添加或更新子行:外键约束失败

Laravel 动作未定义

使用 Laravel 创建新项目会引发异常

在 Laravel 5 中找不到类App\Http\Controllers\admin\Auth