Всем привет! У меня есть связующая таблица пользователя и диалога:
$this->createTable('user_dialog', [
'user_id' => $this->integer(),//Пользователь
'dialog_id' => $this->integer(),//Доступ к диалогу
'deleted' => $this->smallInteger(1)->notNull()->defaultValue(0),//Скрыть диалог от пользователя (удалить)
'PRIMARY KEY(user_id, dialog_id)',
]);
Мне необходимо сделать проверку на существование диалога между двумя пользователями ОДНИМ запросом в базу данных. Подскажите правильный запрос из базы. Я делаю так:
$userDialog = UserDialog::find()
->where(['user_id' => [$currentUserID, $from_id]])
->asArray()
->all();
Однако при таком подходе получаю все диалоги этих пользователей. А нужно только вывести только их диалог, а не все.
Пример данных в таблице
user_id | dialog_id | deteled
1 | 1 | 0
2 | 1 | 0
1 | 2 | 0
3 | 2 | 0
Текущая выборка по запросу выше получается такая:
array(3) {
[0]=>
array(3) {
["user_id"]=>
string(1) "1"
["dialog_id"]=>
string(2) "1"
["deleted"]=>
string(1) "0"
}
[1]=>
array(3) {
["user_id"]=>
string(1) "1"
["dialog_id"]=>
string(2) "2"
["deleted"]=>
string(1) "0"
}
[2]=>
array(3) {
["user_id"]=>
string(1) "2"
["dialog_id"]=>
string(2) "1"
["deleted"]=>
string(1) "0"
}
}