как мне написать такой запрос в cakephp
SELECT * FROM tickets
INNER JOIN questions ON (questions.id_ticket = tickets.id)
HAVING tickets.count_question = COUNT(tickets.id)
я пытаюсь так но оно не работает
$ticket = $this->Tickets->find()
->innerJoinWith('Questions')
->group('Tickets.id')
->having(['Tickets.count_question' => 'COUNT(Questions.id)']);
-
что-то у меня некоторые сомнения в адекватности исходного запроса.teran– teran2019年05月25日 20:12:11 +00:00Commented 25 мая 2019 в 20:12
1 ответ 1
Укажите названия таблиц с маленькой буквы, т.к. в запросе у вас они с маленькой. Только в innerJoinWith должно быть с большой, т.к. туда передаётся название модели:
$ticket = $this->Tickets->find()
->innerJoinWith('Questions')
->group('tickets.id')
->having(['tickets.count_question' => 'COUNT(questions.id)']);
Если не поможет, попробуйте еще переписать join вот так:
$ticket = $this->Tickets->find()
->join([
'questions' => [
'table' => 'questions',
'type' => 'inner',
'conditions' => 'questions.id_ticket = tickets.id',
]
])
->group('tickets.id')
->having(['tickets.count_question' => 'COUNT(questions.id)']);
ответ дан 25 мая 2019 в 5:38
Sergei Kuraksin
4424 серебряных знака6 бронзовых знаков
Начните задавать вопросы и получать на них ответы
Найдите ответ на свой вопрос, задав его.
Задать вопросdefault