Код: Выделить всё
$this->createTable('some_table', [
'id' => $this->bigPrimaryKey()->unique(),
'external_id' => $this->bigInteger()->notNull(),
'name' => $this->string()->notNull(),
'value' => $this->string()->notNull()
]);
$this->createIndex(
'idx-some_table-external_id',
'some_table',
'item_id'
);
$this->addForeignKey(
'fk-some_table-external_id',
'some_table',
'external_id',
'external_table',
'id',
'CASCADE'
);
Например есть 4 записи:
Код: Выделить всё
insert into some_table(external_id, name, value) values(1, color, red);
insert into some_table(external_id, name, value) values(1, weight, 100);
insert into some_table(external_id, name, value) values(2, color, blue);
insert into some_table(external_id, name, value) values(2, weight, 23);
Если честно я даже не представляю как такое условие задать на чистом sql. Подозреваю что нужно использовать count(*) и фильтровать записи сравнивая количество найденных с количеством связок name и value. Но в sql я не силен. Заранее благодарен за помощь.