Как получить данные из родительской и дочерней таблиц на основе статуса, в котором внешний ключ имеет разные статусы для каждой строки - PullRequest
0 голосов
/ 11 марта 2020

У меня есть 2 таблицы с отношением внешнего ключа. Ситуация такова, что у меня есть case, а у case много revision с, и у каждого revision есть свой status. Я хочу получить данные родительской таблицы и дочерние данные, если изменяется только c строка статуса таблицы внешнего ключа

Таблица Case

id      case_no    patient_name  age
1       12564        abc         78
2       1256         lkj         63
3       125          bdhf        23

Таблица Case_Revisons

    id      case_id    revison         status
    1         1           0           assesemnt
    2         1           1           assesment
    3         1           2           treatment
    4         2           2           assesment
    5         3           1           assesment

Все, что я хочу - это все данные из таблицы Case и Case Revisions, где статус treatment

Что я пробовал:

$data['treatment_setup_cases'] = MedicalPrimaryCases::with('primaryCaseNo')
            ->where('impression_type', 1)
            ->where('status', 'treatment-setup')
            ->get();


 public function primaryCaseNo()
    {
        return $this->belongsTo(PrimaryCaseNo::class, 'primary_medical_case_id');
    }

1 Ответ

0 голосов
/ 11 марта 2020

Используйте здесь соединение:

$the_data_you_want = Case::join('case_revisions', 'case.id', '=', 'case_revisions.case_id')
    ->where('status', 'treatment')
    ->get();

PrimaryCaseNo и impression_type не были упомянуты в объяснении вопроса, поэтому я их проигнорировал, вы можете изменить это при необходимости.

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...