Ich habe 2 Tabellen: orders
, orders_others
MYSQL - MINDESTENS Zustand mit Fall
In orders
, ich habe 2 wichtige Säulen: priority_date
, date_end
In orders_others
, ich habe 1 wichtige Säule: date_to
Ich möchte nächste Bestellung (mit 2 Tabellen) suchen, aber nächstes Datum muss >= CURRENT DATE
sein MySQL Code:
SELECT
users.*,
LEAST(
MIN(
CASE WHEN orders.date_end >= CURDATE() THEN orders.date_end ELSE "9999-99-99 99:99:99" END
),
MIN(
CASE WHEN orders_others.date_to >= CURDATE() THEN orders_others.date_to ELSE "9999-99-99 99:99:99" END
),
MIN(
CASE WHEN orders.priority_date >= CURDATE() THEN orders.priority_date ELSE "9999-99-99 99:99:99" END
)
) as next_order,
MIN(
CASE WHEN orders.date_end >= CURDATE() THEN orders.date_end ELSE "9999-99-99 99:99:99" END
) AS next_ending,
MIN(
CASE WHEN orders_others.date_to >= CURDATE() THEN orders_others.date_to ELSE "9999-99-99 99:99:99" END
) AS next_order_others,
MIN(
CASE WHEN orders.priority_date >= CURDATE() THEN orders.priority_date ELSE "9999-99-99 99:99:99" END
) as next_priority_date
FROM
`users`
LEFT JOIN `orders` ON `orders`.`idu` = `users`.`id`
LEFT JOIN `orders_others` ON `orders_others`.`unique` = `orders`.`unique`
AND `orders_others`.`date_to` >= (
CURDATE() - INTERVAL 1 YEAR
)
WHERE `next_order`>='2017-12-30 00:00:00'
GROUP BY
`users`.`id`
ORDER BY
`next_order` ASC
LIMIT
10
Ergebnis: Unknown column 'next_order' in 'where clause'
Wenn ich die Bedingung löschen fein :)
Einsatz, wo vor Gruppe von –
Siehe https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to -be-a-very-simple-sql-query – Strawberry