Php 使用laravel查询获取错误的id
我有下面的查询,但它返回wront idPhp 使用laravel查询获取错误的id,php,laravel,Php,Laravel,我有下面的查询,但它返回wront id $selectedAdmins = DB::table('organization_admins') ->whereIn('organization_admins.user_id', function($query) use ($id) { $query->where('project_admins.project_id', $id)->select('user_id') ->
$selectedAdmins = DB::table('organization_admins')
->whereIn('organization_admins.user_id', function($query) use ($id) {
$query->where('project_admins.project_id', $id)->select('user_id')
->from('project_admins');
})
->join('users', 'users.id', '=', 'organization_admins.user_id')
->join('profiles', 'profiles.user_id', '=', 'users.id')
->select(
'organization_admins.id as id',
'users.email as email',
'users.username as username',
'profiles.mobilePhone1 as phone',
'users.id as userId'
)
->get();
我需要获取的id是project_admins表的id。我曾尝试在“选择部分”中添加id,并将组织_admins.id替换为项目_admins.id,但没有成功
有什么想法吗
使现代化
如果我使用“project_admins.id as id”,我将得到以下错误:
消息:SQLSTATE[42S22]:未找到列:1054未知列
“字段列表”SQL中的“project\u admins.id”:选择project\u admins.id
作为id,users.email作为电子邮件,users.username作为用户名,
profiles.mobilePhone1作为电话,users.id作为来自
组织\管理员在users.id上加入内部用户=
上的组织\u admins.user\u id内部联接配置文件
profiles.user_id=users.id其中
组织\u admins.user\u id不在“从中选择用户\u id”
project\u admins,其中project\u admins.project\u id=2
无法从表project\u admins获取任何字段,因为此信息位于子查询中。要实现这一点,您必须重新构造查询 不过,您可以从项目管理员开始查询,并加入组织管理员。通过这种方式,您还可以访问project_管理员:仅限SQL查询,您将了解如何在laravel中执行此操作:
SELECT
project_admins.id as id,
users.email as email,
users.username as username,
profiles.mobilePhone1 as phone,
users.id as userId
FROM
project_admins
LEFT JOIN
organization_admins
ON
organization_admins.user_id = project_admins.user_id
LEFT JOIN
users
ON
users.id = organization_admins.user_id
LEFT JOIN
profiles
ON
profiles.user_id = user.id
WHERE
organization_admins.user_id IS NOT NULL /* only select rows where project organization admin exists */
AND
project_admins.project_id = $id
请注意,这是未经测试的,因为我不知道您的表结构可能不正确,但它应该能让人明白这一点 这个问题已经在这里回答了,检查这个-@BloodyProgrammer,我在那里找不到我的答案。我的查询的问题是,我没有加入project_admins表,我只是将其用于比较,因此我无法在导出选择部分中获取它。出现了什么错误,请在运行此查询时解释确切的错误。