Я так понимаю символ "a" основной, а крыжик сверху дополнительный. Возможно, можно как-то отсечь дополнительные символы от основного.
2·x + 3·y - z = 0
4·x + 6·y -2·z = 0
3·x - y + 2·z = 0
x + 3/2·y - 1/2·z = 0
0 = 0
- 11/2·y + 7/2·z = 0
y = 7/11·z
x = -5/11·z
x + y + z = -5/11·z + 7/11·z + z = 13/11·z <= 1
x + y + z = 13/11·z -> max
SELECT `c`.`id` AS `city_id`, `u`.`id` AS `url_id`, `u`.`url` AS `url`
FROM (
SELECT `id`, `lastCheckTimestamp`
FROM `cities`
ORDER BY `lastCheckTimestamp`
LIMIT 1
) AS `c`
LEFT JOIN `urls` AS `u` ON `u`.`city_id` = `c`.`id`
AND `u`.`lastCheckTimestamp` < `c`.`lastCheckTimestamp`
LIMIT 1
$data = array(0 => array(273 => 'Business', 317 => 'Rent', 377 => 'Places'),
273 => array(1676 => 'Corporations', 775 => 'Vacations', 1384 => 'Services'),
317 => array(774 => 'Car', 901 => 'Bike'),
377 => array(520 => 'Restaurants', 364 => 'Bars', 767 => 'Parcks')
);
function makeTree($data, $level, $root) {
if (!isset($data[$root]))
return "";
$str = "";
foreach($data[$root] as $id => $name) {
$str .= "<li data-id='{$id}' class='level{$level}'>${name}";
$str .= makeTree($data, $level+1, $id);
}
return ("" == $str ? "" : "<ul>{$str}</ul>");
}
print makeTree($data, 0, 0);
SELECT ...
FROM `products` AS `p`
JOIN `product_attributes` AS `pa1` ON `pa1`.`attribute_id` = :attr1
AND `pa1`.`attribute_value` = :val1 AND `pa1`.`product_id` = `p`.`id`
JOIN `product_attributes` AS `pa2` ON `pa2`.`attribute_id` = :attr2
AND `pa2`.`attribute_value` = :val2 AND `pa2`.`product_id` = `p`.`id`