Нарушение ограничений целостности: 1052

#php #mysql #sql #laravel-8

Вопрос:

Нарушение ограничения целостности: 1052 Столбец «идентификатор» в предложении where неоднозначен (SQL: выберите * kumeti_member_registrations слева от соединения members list members list . id = kumeti_member registrations . member_name где id = 2)»,

этот запрос, пожалуйста, устраните ошибку

 $result = DB::table('kumeti_member_registrations')  -gt;leftjoin('members_list', 'members_list.id', '=', 'kumeti_member_registrations.member_name')  -gt;where('id', $id)  -gt;get();  

Ответ №1:

Вам необходимо указать имя таблицы, id которое является общим для обеих таблиц и поэтому неоднозначно

Так

 -gt;where('kumeti_member_registrations.id', $id)  

Комментарии:

1. я думаю, что это не ошибка псевдонима

Ответ №2:

Попробуй это:

 $result = DB::table('kumeti_member_registrations')  -gt;leftjoin('members_list', 'members_list.id', '=', 'kumeti_member_registrations.member_name')  -gt;where('kumeti_member_registrations.id', $id)  -gt;get();  

Комментарии:

1. Зачем оператору пытаться это сделать? Хорошие ответы всегда будут содержать объяснение того, что было сделано и почему это было сделано таким образом, не только для ОП, но и для будущих посетителей, чтобы они могли найти этот вопрос и прочитать ваш ответ. Если на него будет дан хороший ответ, возможно, они поднимут его.