Есть две таблицы вакансии и отклики.
В вакансиях есть hasmany relation:
public function getResponse()
{
return $this->hasMany(Response::className(), ['vid' => 'vid']);
}
CREATE TABLE IF NOT EXISTS `vacancy` (
`uid` int(10) unsigned NOT NULL,
`cid` int(10) unsigned NOT NULL,
`vid` int(10) unsigned NOT NULL AUTO_INCREMENT,
`position` int(10) NOT NULL,
`salary` int(10) DEFAULT NULL,
`acompany` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
`experience` tinyint(3) DEFAULT NULL,
`employment` int(3) DEFAULT NULL,
`content` longtext CHARACTER SET utf8 NOT NULL,
`region` tinyint(3) DEFAULT NULL,
`city` tinyint(3) DEFAULT NULL,
`scope` int(9) NOT NULL,
`status` int(1) NOT NULL,
`expire` int(11) DEFAULT NULL,
`edited` int(11) DEFAULT NULL,
`created` int(11) NOT NULL,
PRIMARY KEY (`vid`)
)
CREATE TABLE IF NOT EXISTS `response` (
`rid2` int(10) unsigned NOT NULL AUTO_INCREMENT,
`rid` int(10) unsigned NOT NULL,
`cid` int(10) unsigned NOT NULL,
`vid` int(10) unsigned NOT NULL,
`role` tinyint(3) DEFAULT NULL,
`created` int(11) NOT NULL,
`recived` int(11) DEFAULT NULL,
`status` tinyint(3) DEFAULT NULL,
PRIMARY KEY (`rid2`)
)
Как выбрать из таблицы вакансий те на которые нет отклика с response.rid = 235
Пробовал так:
$query = Vacancy::find()
->joinWith('response')
->select('vacancy.vid')
->where('response.rid <> 235');
Но не получается.
Выборка из базы для dataProvider
Выборка из базы для dataProvider
Последний раз редактировалось dadids 2015.02.13, 18:32, всего редактировалось 2 раза.
Re: Выборка из базы для dataProvider
примерно так:
Код: Выделить всё
$query = static::find();
->joinWith(['response']) // relation getResponse()
->where('response.rid!=1')
Re: Выборка из базы для dataProvider
Дим он все равно выдает запись с response.rid=235 Вот смотри что на выходеDemon_id писал(а):примерно так:Код: Выделить всё
$query = static::find(); ->joinWith(['response']) // relation getResponse() ->where('response.rid!=1')
Array
(
[0] => Array
~~~~~~~~~~~~~~~~~~~~~~~~~~
[1] => Array
(
[vid] => 1
[response] => Array
(
[0] => Array
(
[rid2] => 1
-------------------------------------------------------------------------------------------------------------------------------
[rid] => 235
-------------------------------------------------------------------------------------------------------------------------------
[cid] => 1
[vid] => 1
[role] => 1
[created] => 1420543984
[recived] =>
[status] => 2
)
[1] => Array
(
[rid2] => 5
[rid] => 186
[cid] => 1
[vid] => 1
[role] => 2
[created] => 1423751738
[recived] =>
[status] => 1
)
[2] => Array
(
[rid2] => 6
[rid] => 97
[cid] => 1
[vid] => 1
[role] => 2
[created] => 1423751991
[recived] =>
[status] => 1
)
~~~~~~~~~~~~~~~~~~~~~~~~~~
[27] => Array
(
[rid2] => 56
[rid] => 203
[cid] => 1
[vid] => 1
[role] => 2
[created] => 1423772968
[recived] =>
[status] => 1
)
)
)
)