$counter = $this ->notOrm ->items ->where('type = ?', 'campaign') ->and(item_values:relation = ?', 'feed') ->and(item_values:value > ?', '') ->and(item_values:relation = ?', 'status') ->and(item_values:value = ?', 'A');
SELECT items.*FROM itemsLEFT JOIN items_values ON items.id = items_values.items_idWHERE (`type` = 'campaign') AND(items_values.relation = 'feed') AND (items_values.value > '') AND (items_values.relation = 'status') AND (items_values.value = 'A')
include "NotORM.php";
class MyStructure extends NotORM_Structure_Convention { function getReferencedTable($name, $table) { if (preg_match('/([^0-9]+)[0-9]+$/', $name, $matches) == 1) { // If tablename ends with digits, strip the digits and use the rest as tablename $name = $matches[1]; } return parent::getReferencedTable($name, $table); }}$structure = new MyStructure;
$pdo = new PDO(...);$db = new NotORM($pdo, $structure);
echo $db->items()
->where('type = ?', 'campaign')
->and('item_values1:relation = ?', 'feed') ->and('item_values1:value > ?', '') ->and('item_values2:relation = ?', 'status') ->and('item_values2:value = ?', 'A');
SELECT items.* FROM items LEFT JOIN item_values AS item_values1 ON items.id = item_values1.items_id LEFT JOIN item_values AS item_values2 ON items.id = item_values2.items_id WHERE (type = 'campaign') AND (item_values1.relation = 'feed') AND (item_values1.value > '') AND (item_values2.relation = 'status') AND (item_values2.value = 'A')