Autor Zpráva
Gogo_v
Profil *
Dobrý den. Potřebuji poradit (zase) Mám dvě tabulky s několika poli kde v jedné tabulce je index na druhou tabulku
SE.id , SE.date_ins,SE.telefon FROM service SE a SP.pid,SP.datum,SP.text FROM spoznamka SP 
propojené jsou pole SE.id a SP.pid potřebuju setřídit výpis podle pole SE.date_ins a podle pole SP.datum. do tabulky SP se ukladají poznámky které tam být mohou ale nemusí a to je to s čím si nevím rady. Zkoušel jsem něco ve stylu
SELECT SE.* FROM service SE, (SELECT datum FROM spoznamka where pid = SE.id order by datum DESC limit 1) as pdate ORDER BY pdate , SE.date_ins DESC 
ale takto to bohužel nesortuje jak bych si představoval. představa je asi taková že setřídí výsledek podle datumu vložení poznámky pokud existuje a mezi to vloží ostatní záznamy z tabulky service.
20 777111222	2011-11-21 08:00:03	  
Poznámka
 	20 	2011-11-21 11:50:13 	Nejaky text
 	20 	2011-11-21 12:08:20 	Další poznámka
21	731000111	2011-11-20 15:06:18	  
Poznámka
 	21 	2011-11-21 11:35:28 	Navrhnul jsem řešení
22	608111222	2011-11-20 15:06:18	  
Poznámka
 	22 	2011-11-21 10:55:13 	Přetrvávající problém
23	605333333	2011-11-20 11:24:43  
24	605444555	2011-11-19 19:13:06	  
Poznámka
 	24 	2011-11-21 10:34:07 	S problémem seznámení
25	777141414	2011-11-19 18:34:07  
Poznámka
 	25 	2011-11-19 18:36:03 	Děkuji
 	25 	2011-11-21 09:07:23 	Upravit 
 	25 	2011-11-21 12:14:29 	Nastavení SQL


Výsledek setřídění by měl být 25,20,21,22,24 protože ve 25 je nejčerstvější záznam. Doufám že jsem to popsal nějak srozumitelně :) Děkuji za pomoc
Kajman_
Profil *
Nepatří ten subselect pojmenový pdate před from?
Gogo_v
Profil *
Kajman:
Samozřejmě patří , jsem se v tom nějak zamotal při přepisování kuchal jsem to podstatné z mnohem složitějšího SELECTu :)
SELECT SE.*,(SELECT datum FROM spoznamka where pid = SE.id order by datum DESC limit 1) as pdate FROM service SE  ORDER BY pdate , SE.date_ins DESC  
a i ve výsledku se mi ztratil záznam 23 :) výsledek by měl být ideálně 25,20,21,22,23,24
Kajman_
Profil *
Za pdate Vám chybí DESC. Ale aby tam byla ta 23 uprostřed, můžete zkusit

ORDER BY ifnull(pdate,SE.date_ins) DESC
Gogo_v
Profil *
Kajman:
Skvělé to je přesně ono. Děkuji moc.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0