Каждая табличка - это отдельный файл SQL.
(x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2)) == 0
abs(x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2)) <= eps
SELECT o.id, o.variant_id,
/* vp.variant_id, */ -- заджойненные id дублировать в выборке не нужно, если, конечно, не хотите наблюдать null-значения по другую сторону присоединения таблицы vp
vp.quantity AS quantity_result,
sum(vp.quantity) over (partition by vp.variant_id) as sum_by_variant_id -- сумма в пределах партиции variant_id
FROM orders AS o
LEFT JOIN variant_products AS vp ON vp.variant_id = o.variant_id
LEFT JOIN products AS p ON p.id = vp.product_id
LEFT JOIN product_types AS pt ON pt.id = p.type_id
/*WHERE */ and pt.id NOT IN (1, 2) -- если напишите в where, то выборка усечется до такого условия с pt.id. Но если напишите это условие в left join, то выберутся все Order, но где pt.id IN (1, 2) будут null значения.
SELECT o.id, o.variant_id,
/* vp.variant_id, */ -- заджойненные id дублировать в выборке не нужно, если, конечно, не хотите наблюдать null-значения по другую сторону присоединения таблицы vp
sum(vp.quantity) as sum_by_variant_id -- сумма в пределах группировки o.id, o.variant_id
FROM orders AS o
LEFT JOIN variant_products AS vp ON vp.variant_id = o.variant_id
LEFT JOIN products AS p ON p.id = vp.product_id
LEFT JOIN product_types AS pt ON pt.id = p.type_id
/*WHERE */ and pt.id NOT IN (1, 2) -- если напишите в where, то выборка усечется до такого условия с pt.id. Но если напишите это условие в left join, то выберутся все Order, но где pt.id IN (1, 2) будут null значения.
group by o.id, o.variant_id /*, vp.variant_id */
адаптивности при таком раскладе не возможно добиться
p.s.: я думал сделать сеткой, т.е. типа как пазл картинка состоящая из одинаковых квадратиков (тогда это будет проще)
контейнер_div_ов > div
{
/* стили элементов абвгдейки */
}
контейнер_div_ов > div[id]
{
/* стили элементов абвгдейки */
}
<div class="alphabet">
<div id="A" class="alphabet__item"></div>
<div id="B" class="alphabet__item"></div>
<div id="C" class="alphabet__item"></div>
...
</div>
не больше двух раз в неделю
select count(*) as cnt -- кол-во записей на этой неделе
from record as r
where r.user_id = ? -- пользователь
-- дата текущего понедельника (от curdate()) <= r.add_date < дата следующего понедельника (от curdate())
and r.add_date >= subdate(curdate(), interval weekday(curdate()) day) -- текущ. понедельник с точки зрения curdate()
and r.add_date < subdate(curdate(), interval weekday(curdate()) - 7 day) -- следующий понедельник с точки зрения curdate()
select count(*) as cnt -- кол-во записей за последние 7 дней
from record as r
where r.user_id = ? -- пользователь
and r.add_date > subdate(curdate(), interval 7 day)
failed because the user didn't interact with the document first
SELECT Users.*,
ph.value->>'phone' as phone
FROM Users, json_array_elements(Users.phones) as ph
where ph.value->>'phone' like '7%3';
select A.*
from (SELECT `date`, `name`, phone, count() over (partition by phone) phone_count
FROM `myusers`
) A
where A.phone_count > 1
ORDER BY date ASC
select `date`, `name`, phone, p.phone_count
from `myusers` as mu
join (SELECT phone, count(*) phone_count
FROM `myusers`
group by phone) p on p.phone = mu.phone
where p.phone_count > 1
ORDER BY mu.date ASC