MySQL рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рдЯреНрд░рд┐рдХреНрд╕ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╡рд┐рд╢реЗрд╖ DBMS рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдЖрдк рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдиреЗ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рд╕рд╛рдЗрдХрд┐рд▓ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛, рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рддрдХрдиреАрдХ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реБрдП рдЬреЛ рдХрдИ рдмрд╛рд░ рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдЧрддрд┐ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреЛрдб рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЖрдкрдХреЗ рд╕рд╛рде рдмрд╣реБрдд "рджрдпрд╛рд▓реБ" рдФрд░ "рдЙрддреНрддрд░рджрд╛рдпреА" MySQL рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЬреЛ рдЕрдХреНрд╕рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдЙрди рдЪреАрдЬреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдЕрдиреНрдп DBMS рдкрдЪ рдирд╣реАрдВ рд╕рдХрддреЗ рдереЗред рдпрд╣ рд╕рд╛рдордЧреНрд░реА рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреА рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЕрднреА-рдЕрднреА рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рдЕрджреНрднреБрдд рджреБрдирд┐рдпрд╛ рдореЗрдВ рдЬрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдЕрдиреБрднрд╡реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдпрд╣рд╛рдВ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рдорд┐рд▓реЗрдЧрд╛ред

рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╣рдЯрд╛рдирд╛

рдмрд╣реБрдд рдмрд╛рд░, рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рд╢реЗрд╖ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдкрд░, рдореБрдЭреЗ рдЗрд╕ рдмрд╛рдд рдкрд░ рд╕рд╡рд╛рд▓ рдЙрдардиреЗ рд▓рдЧреЗ рдХрд┐ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рд╕реЗ рдХреИрд╕реЗ рдЬрд▓реНрджреА рдФрд░ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдПрдВред рддреБрд░рдВрдд рдпрд╣ рдзреНрдпрд╛рди рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд╕рдорд╛рди рдПрдХ рдФрд░ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рдореЗрдВ рдПрдХ рдЕрдиреВрдареА рдХреБрдВрдЬреА рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕рдореЗрдВ рдореВрд▓ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдбреЗрдЯрд╛ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБ, рдХрд╣рддреЗ рд╣реИрдВ, INSERT IGNORE рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдПред рд▓реЗрдХрд┐рди рдПрдХ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИред рдЗрд╕ рдХреНрд╡реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдХреБрдВрдЬреА рдмрдирд╛рдПрдВ:

ALTER IGNORE TABLE table1 ADD UNIQUE (field1, field2); 

рдХреБрдВрдЬреА рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рд╕рднреА рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рдПрдВрдЧреЗред

рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдмрджрд▓реЗрдВ

рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рд╡рд╛рд▓реЗ рдШрд░ рдХреЗ рдкрддреЗ рдХреА рдкрддрд╛ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЦреЛрдЬ рдХрд╛ рдХрд╛рд░реНрдп рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдШрд░ рдХрд╛ рдирдВрдмрд░ рд╕рдВрдЦреНрдпрд╛ рдкрд╛рда рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ '1', '1a', '1 / b', '2y', '3ytsuken', рдЖрджрд┐ рдХреЗ рдорд╛рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдФрд░ рд╣рдо рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдЪреБрдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ 1 рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рд╡рд░реНрдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реЛред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рддреБрд░рдВрдд LIKE рдпрд╛ REGEXP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВрдЧреЗред рд▓реЗрдХрд┐рди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд MySQL рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛:

 SELECT * FROM address WHERE num + 0 = 1; 

рдПрдХ рдЕрдВрдХрдЧрдгрд┐рддреАрдп рдСрдкрд░реЗрд╢рди рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, MySQL рдЕрдкрдиреЗ рд╕рднреА рддрд░реНрдХреЛрдВ рдХреЛ рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдбрд╛рд▓ рджреЗрддрд╛ рд╣реИред рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рднреА рд╡рд░реНрдгреЛрдВ рдХреЛ рдЫреЛрдЯрд╛ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рдкрд╣рд▓реЗ рдЧреИрд░-рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдПрдХ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред
рдпрд╣рд╛рдБ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЕрдиреБрд░реЛрдз рд╣реИ, рднреА, рдЪреБрдкрдЪрд╛рдк рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд:

 SELECT '1qwe3s' + '2regt3g'; 

рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рдЙрддреНрддрд░ рдорд┐рд▓рддрд╛ рд╣реИ: 3ред

рдХреНрд╡реЗрд░реА рдореЗрдВ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдпрд╣рд╛рдВ рдореИрдВ рддреБрд░рдВрдд рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЪрд░ рд╣рдорд╛рд░реЗ рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛ рджреЗрдЧрд╛ред
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд╛рд▓рд┐рдХрд╛ рддрд╛рд▓рд┐рдХрд╛ 1 рд╣реИ:
рдЖрдИрдбреАрдпреЛрдЧ
135
225
310
455
512

рдЖрдкрдХреЛ рдЗрди рд╕рднреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЙрди рдкрд░ 2 рдФрд░ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдСрдирд╕реНрдЯрд╛рд░реНрдЯ рдФрд░ рдХреБрд▓ред
рдХреБрд▓ = рдпреЛрдЧ - onStartред
рдкрд╣рд▓реЗ рд░рд┐рдХреЙрд░реНрдб onStart = 0 рдХреЗ рд▓рд┐рдП onStart рдкрд┐рдЫрд▓реЗ рд░рд┐рдХреЙрд░реНрдб рд╕реЗ рдХреБрд▓ рдореВрд▓реНрдп рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред
рдпрд╛рдиреА рдЕрдВрдд рдореЗрдВ, рд╣рдореЗрдВ рдпрд╣ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:
рдЖрдИрдбреАрдпреЛрдЧonStartрд╕рдВрдкреВрд░реНрдг
135035
22535-10
310-1020
4552035
51235-23

рдПрдХ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╕рдордп рдЕрддрд┐рд░рд┐рдХреНрдд JOIN рдФрд░ рд╕рдмрдХреНрд╡реЗрд░реА рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд╕рдХреЗрдВрдЧреЗ:

 SELECT t1.id, t1.summ, @i AS onStart, @i := t1.summ - @i AS total FROM table1 t1 JOIN (SELECT @i := 0) var; 

рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдЕрднрд┐рд▓реЗрдЦреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрд┐рдирддреА

рдПрдХ рдФрд░ рдЖрдо рдХрд╛рдоред рдФрд░ рдпрд╣рд╛рдВ рдореИрдВ рддреБрд░рдВрдд рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛ред
рджреА рдЧрдИ рддрд╛рд▓рд┐рдХрд╛ 1 (рдЖрдИрдбреА, рдПрдл 1, рдПрдл 2)ред рд╣рдореЗрдВ рдПрдХ рдХреНрд╡реЗрд░реА рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рдПрдЧреА:
рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛рдПрдл 1 = 1 рдХреЗ рд╕рд╛рде рд░рд┐рдХреЙрд░реНрдб рдХреА рд╕рдВрдЦреНрдпрд╛f1 = 2 рдХреЗ рд▓рд┐рдП f2 рдХреЗ рдорд╛рдиреЛрдВ рдХрд╛ рдпреЛрдЧ

рдмреЗрд╢рдХ, рдЖрдк рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 SELECT COUNT(1), (SELECT COUNT(1) FROM table1 WHERE f1 = 1), (SELECT SUM(f2) FROM table1 WHERE f1 = 2) FROM table1; 

рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╖реНрдЯрддрдо рд╕рдорд╛рдзрд╛рди рд╕реЗ рджреВрд░ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП рджреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдЙрдкрд╢реНрд░реЗрдгрд┐рдпрд╛рдБ рд╣реИрдВред рдФрд░ рд╣рдо рдЗрд╕реЗ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХрд░реЗрдВрдЧреЗ:

 SELECT COUNT(1), SUM(f1 = 1), SUM(IF(f1 = 2, f2, 0)) FROM table1; 

рдЕрдм рдПрдХ рдФрд░ рдмрд╛рддред рд╣рдо рд╕рднреА рдХреА рдЬрд░реВрд░рдд рд╣реИ, рд╣рдо рдореЗрдЬ рдкрд░ рдПрдХ рдкрд╛рд╕ рдореЗрдВ рдЧрд┐рдирд╛ред

рд╕рдореВрд╣ рдХрдерди рдореЗрдВ рдХреЙрд▓рдо 'рдЖрдИрдбреА' рдЕрд╕реНрдкрд╖реНрдЯ рд╣реИ

рд▓реЗрдЦ рдХреЗ рдЗрд╕ рднрд╛рдЧ рдореЗрдВ, рдореИрдВ MySQL рдХреА рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛ рдкрд░ рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдиреБрд░реЛрдз рд╣реИрдВ:

 SELECT t1.id, t2.id FROM table1 t1 JOIN table2 t2 ON t1.id = t2.id_t1 GROUP BY id; 

рдпрд╣ рджреЗрдЦрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЧреНрд░реБрдк рдмреА рдмреНрд▓реЙрдХ рдореЗрдВ рд╣рдо рдЖрдИрдбреА рдлрд╝реАрд▓реНрдб рдХреЗ рд▓рд┐рдП рдЙрдкрдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рднреВрд▓ рдЧрдП рдереЗ, рдФрд░ рддрджрдиреБрд╕рд╛рд░, рдЬрдм рдЕрдиреБрд░реЛрдз рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рдереЗ, рддреЛ рд╣рдореЗрдВ рд╕рдореВрд╣ рдХрдерди рдореЗрдВ "рдХреЙрд▓рдо 'рдЖрдИрдбреА' рддреНрд░реБрдЯрд┐ рд╣реИ" рдЕрд╕реНрдкрд╖реНрдЯ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╕рдм рдХреБрдЫ рд╕рдЪ рд╣реИред рдЕрдм рдЗрд╕ рдХреНрд╡реЗрд░реА рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ:

 SELECT t1.id, t2.f1 FROM table1 t1 JOIN table2 t2 ON t1.id = t2.id_t1 GROUP BY id; 

рд╣рдордиреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдлрд╝реАрд▓реНрдб рдХреА рд╕реВрдЪреА рд╕реЗ t2.id рд╣рдЯрд╛ рджрд┐рдпрд╛ рдФрд░, lo рдФрд░ рдирд┐рд╣рд╛рд░рдирд╛, рдЕрдиреБрд░реЛрдз рдХрд╛рдо рдХрд┐рдпрд╛, рдбреЗрдЯрд╛ t1.id рджреНрд╡рд╛рд░рд╛ рд╕рдореВрд╣реАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдЕрдиреНрдп DBMS, рдЬреИрд╕реЗ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, MS SQL рдпрд╛ PostgreSQL, рджреВрд╕рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рджреЗрдЧрд╛, рд▓реЗрдХрд┐рди MySQL рдХреЗ рд▓рд┐рдП рджреВрд╕рд░реА рдХреНрд╡реЗрд░реА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣реА рд╣реИред
рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдЕрдзрд┐рдХ рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ рдФрд░ рд╣рдореЗрд╢рд╛ рдЦреЗрддреЛрдВ рдХреЗ рд╕рд╛рдордиреЗ рдПрд▓рд┐рдпрд╕реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЕрдиреНрдпрдерд╛ рдлрд┐рд░ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдереЛрдбрд╝реЗ рдмрджрд▓рд╛рд╡ рдХреЗ рд╕рд╛рде, рдЖрдк рдПрдХ рддреНрд░реБрдЯрд┐ рдореЗрдВ рднрд╛рдЧ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдВрддрд┐рдо рддрд┐рдерд┐ рдбреЗрдЯрд╛ рдЦреЛрдЬреЗрдВ

рдФрд░ рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдПрдХ рдареЗрда рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЬрдЯрд┐рд▓ рдирд╣реАрдВ, рдЕрдХреНрд╕рд░ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рдпрд╣ рдЕрдХреНрд╕рд░ рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред
рднреБрдЧрддрд╛рди рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рднреБрдЧрддрд╛рди рдХрд┐рдП рдЧрдП рд╣реИрдВ (рдЖрдИрдбреА INT, uid INT, pay_date DATETIME, рд░рд╛рд╢рд┐ DECIMAL (15, 2%))ред
рдЖрдИрдбреА - рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА
рдпреВрдЖрдИрдбреА - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛
pay_date - рднреБрдЧрддрд╛рди рдХреА рддрд╛рд░реАрдЦ
рд░рд╛рд╢рд┐ - рднреБрдЧрддрд╛рди рд░рд╛рд╢рд┐
рдЖрдкрдХреЛ рдПрдХ рдЕрдиреБрд░реЛрдз рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рднреБрдЧрддрд╛рди рдХреА рддрд╛рд░реАрдЦ рдФрд░ рд░рд╛рд╢рд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдпреБрдкреАрдбреАред рд╣рдорд╛рд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рднреБрдЧрддрд╛рди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред (рдЗрд╕ рд╢рд░реНрдд рдХреЗ рдмрд┐рдирд╛, рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдмрдпрд╛рди рдЧрд▓рдд рд╣реИ)ред Pay_date рдкреНрд░рдХрд╛рд░ DATE рд╕реЗ DATETIME рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛ред
рдореИрдВ рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдирдХ рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реВрдВ:

 SELECT p.uid, p.amount FROM payments p JOIN (SELECT uid, MAX(pay_date) AS max_dt FROM payments GROUP BY uid) sel ON p.uid = sel.uid AND p.pay_date = sel.max_dt; 

Source: https://habr.com/ru/post/In149571/


All Articles