SELECT *
FROM `cars` AS `c`
JOIN `cars_attr` AS `ca1` ON `ca1`.`id_car` = `c`.`id`
AND `ca1`.`id_attr` = 4 AND `ca1`.`val` >= 2004 AND `ca1`.`val` <= 2008
JOIN `cars_attr` AS `ca2` ON `ca2`.`id_car` = `c`.`id`
AND `ca1`.`id_attr` = 3 AND `ca1`.`val` >= 10000 AND `ca1`.`val` <= 90000
JOIN `cars_attr` AS `ca` ON `ca`.`id_car` = `c`.`id`
JOIN `attr` AS `a` ON `a`.`id` = `ca`.`id_attr`
WHERE `c`.`category` = 1
SELECT *
FROM `cars` AS `c`
JOIN `cars_attr` AS `ca` ON `ca`.`id_car` = `c`.`id`
JOIN `attr` AS `a` ON `a`.`id` = `ca`.`id_attr`
WHERE `c`.`category` = 1
AND `c`.`id` IN (
SELECT `id_car` FROM `cars_attr`
WHERE `ca1`.`id_attr` = 4 AND `ca1`.`val` >= 2004 AND `ca1`.`val` <= 2008
) AND `c`.`id` IN (
SELECT `id_car` FROM `cars_attr`
WHERE `ca1`.`id_attr` = 3 AND `ca1`.`val` >= 10000 AND `ca1`.`val` <= 90000
)
SELECT `t`.`hour`, IFNULL(`t`.`site`, ''), IFNULL(`t`.`count`, 0),
IFNULL(`t`.`sum`, 0)
FROM (
SELECT 0 AS `hour`
UNION SELECT 1
UNION SELECT 2
UNION SELECT 3
UNION SELECT 4
UNION SELECT 5
UNION SELECT 6
) AS `h`
LEFT JOIN (
SELECT HOUR(`time_hour`) as `hour`, `site`, COUNT(`id`) as `count`,
SUM(`price_1`) as `sum`
FROM `project`
WHERE `site`= 'weblancer' AND `date` = '2017-02-26'
GROUP BY HOUR(`time_hour`)
) AS `t` ON `t`.`hour` = `h`.`hour`
SELECT `t`.`action_ID`, `t1`.`prov_title` AS `prov_title_A`, `t1`.`track_no` AS `track_no_A`,
`t2`.`prov_title` AS `prov_title_B`, `t2`.`track_no` AS `track_no_B`,
`t3`.`prov_title` AS `prov_title_C`, `t3`.`track_no` AS `track_no_C`
FROM (
SELECT DISTINCT `action_ID`
FROM `action_has_providers`
) AS `t`
LEFT JOIN `action_has_providers` AS `t1`
ON `t1`.`action_ID` = `t`.`action_ID` AND `t1`.`prov_title` = 'ProvA'
LEFT JOIN `action_has_providers` AS `t2`
ON `t2`.`action_ID` = `t`.`action_ID` AND `t2`.`prov_title` = 'ProvB'
LEFT JOIN `action_has_providers` AS `t3`
ON `t3`.`action_ID` = `t`.`action_ID` AND `t3`.`prov_title` = 'ProvC'
SELECT `u`.*
FROM `users` AS `u`
JOIN `user_tags` AS `ut` ON `ut`.`user_id` = `u`.`id`
AND `ut`.`tag_id` IN (1, 2, ..., N)
GROUP BY `u`.`id`
HAVING COUNT(*) = N
SELECT `u`.*
FROM `users` AS `u`
JOIN `user_tags` AS `ut` ON `ut`.`user_id` = `u`.`id`
AND `ut`.`tag_id` IN (1, 2, ..., N)
GROUP BY `u`.`id`
HAVING COUNT(DISTINCT `ut`.`tag_id`) = N
CREATE FUNCTION SearchRoot(id INT)
BEGIN
DECLARE parent INT;
SET parent = id;
REPEAT
SET id = parent;
SET parent = (SEARCH `id_parent` FROM `table` WHERE `id` = id);
UNTIL parent > 0 END REPEAT;
RETURN id;
END
SELECT `t2`.*
FROM (
SELECT `t1`.`strana`, `t1`.`min_price`, MAX(`t2`.`date`) AS `max_date`
FROM (
SELECT `strana`, MIN(`price`) AS `min_price`
FROM `table`
GROUP BY `strana`
) AS `t1`
JOIN `table` AS `t2` ON `t2`.`strana` = `t1`.`strana`
AND `t2`.`price` = `t1`.`min_price`
GROUP BY `strana`
) AS `t1`
JOIN `table` AS `t2` ON `t2`.`strana` = `t1`.`strana`
AND `t2`.`date` = `t1`.`max_date` AND `t2`.`price` = `t1`.`min_price`