0

как мне написать такой запрос в 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)']);
задан 24 мая 2019 в 20:21
1
  • что-то у меня некоторые сомнения в адекватности исходного запроса. Commented 25 мая 2019 в 20:12

1 ответ 1

0

Укажите названия таблиц с маленькой буквы, т.к. в запросе у вас они с маленькой. Только в 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

Ваш ответ

Черновик сохранён
Черновик удалён

Зарегистрируйтесь или войдите

Регистрация через Google
Регистрация через почту

Отправить без регистрации

Необходима, но никому не показывается

Отправить без регистрации

Необходима, но никому не показывается

Нажимая «Отправить ответ», вы соглашаетесь с условиями пользования и подтверждаете, что прочитали политику конфиденциальности.

Начните задавать вопросы и получать на них ответы

Найдите ответ на свой вопрос, задав его.

Задать вопрос

Изучите связанные вопросы

Посмотрите похожие вопросы с этими метками.