Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql][rozwiazanie]pozapytanie pobierające ostania akcje
Hpsi
post
Post #1





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Witam, z góry przepraszam jeśli mylący jest troszkę temat ale za chiny nie mogłem znaleźć tytułu do mojego problemu wink.gif
Co do problemu zdaje mi się ze chyba gdzieś zabłądziłem myślami i dlatego muszę Was poprosić o pomoc smile.gif
Opis problemu:
Mam sobie 3 tabelki
// serwer z którego pobieram nazwę
// domena która z której pobieram wszystkie informacje
// akcje z której chcę pobrać datę ostatniej akcji
Skrócona wersja tabeli akcje (Bo chce tylko wyciągnąć date)
  1. CREATE TABLE `akcje`
  2. (
  3. `id` int(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  4. `data` date NOT NULL,
  5. `domena_id` int(10) NOT NULL
  6. );


Problem wydaje się banalny jeśli bym chciał wykonać najpierw zapytanie domena->serwer i dodatkowo np w while dodac date ostaniej akcji, no ale jeśli brać pod uwagę, że może być to np 50 domen z których pobieram dane, to mogło by być troszkę nieoptymane.

aktualnie moje zapytanie do sql wygląda tak
  1. $this->engine->db->query('
  2.  
  3. SELECT
  4. `d`.*, `serwer`.`nazwa` AS `serwer_nazwa`,
  5. IF(`d`.`data_in`<"'.date('Y-m-d', time()-(60*60*24*7)).'", 1, 0) AS `bold` ,
  6. IF(`d`.`data_in`<"'.date('Y-m-d', time()-(60*60*24*15)).'", 1, 0) AS `error`
  7. FROM
  8. |domeny| AS `d`
  9. LEFT JOIN
  10. |serwer| AS `serwer`
  11. ON
  12. `d`.`serwer`=`serwer`.`id`
  13. ORDER BY `d`.`id` ASC');

i w tym momencie się zawiesiłem , jak pobrać dodaktowo jeszcze datę ostaniej akcji z tabeli akcje w tym zapytaniu

A i dodatkowo w instrukcjach warunkowych w zapytaniu muszę zamienić `d`.`data_in` własnie na tą datę którą pobiorę z akcji...

----
Edit:
Tak jak myślałem sposób rozwiazania mojego problemu był banalny, wystarczyła kawa + papieros i zaraz umysł się rozjaśnił:
  1. $this->engine->db->parse('
  2.  
  3. SELECT
  4. `d`.*, `serwer`.`nazwa` AS `serwer_nazwa`,
  5. IF(`a`.`data`<"'.date('Y-m-d', time()-(60*60*24*7)).'", 1, 0) AS `bold` ,
  6. IF(`a`.`data`<"'.date('Y-m-d', time()-(60*60*24*15)).'", 1, 0) AS `error`
  7. FROM
  8. |domeny| AS `d`
  9. LEFT JOIN
  10. |serwer| AS `serwer`
  11. ON
  12. `d`.`serwer`=`serwer`.`id`
  13. LEFT JOIN
  14. |links| AS `a`
  15. ON
  16. `d`.`id`=`a`.`do`
  17. GROUP BY `d`.`id`
  18. ORDER BY `d`.`id` ASC, `a`.`data` DESC');


Ten post edytował Hpsi+ 3.06.2011, 09:32:07


--------------------
Daiquiri: T1 = (dx/dt * s)^hpsi
Daiquiri: gdzie T1 - Twój czas przybycia na miejsce, dx/dt - prędkość, s droga
Daiquiri: brb trzeba by to poprawić T1 - Czas jaki Ci to zajmie
Daiquiri: Zatem T - czas dotarcia p T1 + T2 gdzie T2 = aktualny czas

===
po prostu kocham ją :D haha
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 01:10