SELECT `t2`.`id`, IFNULL(`t2`.`field1`, `t1`.`field1`), IFNULL(`t2`.`field2`, `t1`.`field2`), ...
FROM `table1` AS `t1`
LEFT JOIN `table2` AS `t2` ON `t2`.`id` = `t1`.`id` AND `t2`.`date` = :date
WHERE `t1`.`id` = :id
SELECT `c`.`date`, `t2`.`id`, IFNULL(`t2`.`field1`, `t1`.`field1`), IFNULL(`t2`.`field2`, `t1`.`field2`), ...
FROM `calendar` AS `c`
LEFT JOIN `table1` AS `t1` ON `t1`.`id` = :id
LEFT JOIN `table2` AS `t2` ON `t2`.`id` = :id AND `t2`.`date` = `c`.`date`
WHERE `c`.`date` BETWEEN :start_date AND :end_date
SELECT `o`.`ID`, IFNULL(`op`.`VALUE`, 0) AS `prepayment`, IFNULL(`ef`.`VALUE`, 0) AS `payment`
FROM `b_sale_order` AS `o`
LEFT JOIN (
SELECT `order_id`, SUM(`VALUE`) AS `VALUE`
FROM `d_sale_order_prepayment`
GROUP BY `order_id`
) AS `op` ON `op`.`order_id` = `o`.`ID`
LEFT JOIN (
SELECT `order_id`, SUM(`VALUE`) AS `VALUE`
FROM `d_sale_order_excess_fare`
GROUP BY `order_id`
) AS `ef` ON `ef`.`order_id` = `o`.`ID`
SET @id = 0;
UPDATE `test` SET `lock` = 1 WHERE @id := `id` AND `lock` = 0 ORDER BY `time` LIMIT 1;
SELECT @id;
SELECT *
FROM (
SELECT DISTINCT `date_create`
FROM `ordres`
UNION SELECT `date_modified`
FROM `ordres`
WHERE `status` IN (2, 3)
) AS `date`
LEFT JOIN (
SELECT COUNT(*) AS `count`, `date_create`
FROM `ordres`
GROUP BY `date_create`
) AS `all` ON `all`.`date_create` = `date`.`date_create`
LEFT JOIN (
SELECT COUNT(*) AS `count`, `date_modified`
FROM `ordres`
WHERE `status` = 2
GROUP BY `date_modified`
) AS `succ` ON `succ`.`date_modified` = `date`.`date_create`
LEFT JOIN (
SELECT COUNT(*) AS `count`, `date_modified`
FROM `ordres`
WHERE `status` = 3
GROUP BY `date_modified`
) AS `canc` ON `canc`.`date_modified` = `date`.`date_create`
SELECT `t3`.`id_member`, `t3`.`month`, `t3`.`count`
FROM (
SELECT `month`, MAX(`count`) AS `maxcount`
FROM (
SELECT DATE_FORMAT(FROM_UNIXTIME(`poster_time`),'%Y-%m') AS `month`,
COUNT(*) AS `count`
FROM `messages`
GROUP BY `id_member`, `month`
) AS `t1`
GROUP BY `month`
) AS `t2`
JOIN (
SELECT DATE_FORMAT(FROM_UNIXTIME(`poster_time`),'%Y-%m') AS `month`,
COUNT(*) AS `count`, `id_member`
FROM `messages`
GROUP BY `id_member`, `month`
) AS `t3` ON `t3`.`month` = `t2`.`month`
AND `t3`.`count` = `t2`.`maxcount`
ORDER BY `t3`.`month`