Jump to content
php.lv forumi

pedejais ieraksts par kviti


localhero

Recommended Posts

Ir divas tabulas kvitis un darbibas.

tabula kvitis.

id nosaukums

----------------

1 nos1

2 nos2

3 nos3

 

tabula darbibas

id kvits_id darbiba

1 1 pag.

2 1 sav.

3 3 pag.

4 1 atgr.

5 3 sav.

 

Ka lai dabu ierakstus par kvitim no pirmas tabulas un otras tabulas kur otras tabulas ieraksta pedeja darbiba = pag. Man ir risinajums bet viņš man nepatik. Varbut ir kads gudraks risinajums.

 

EDITED

Edited by localhero
Link to comment
Share on other sites

select k.nosaukums, d.darbiba from kvitis k left join darbibas d on k.id = d.kvits_id ORDER BY d.id desc LIMIT 0, 1

 

edit: andrisp, pasteidzās pirmais :)

Edited by Vebers
Link to comment
Share on other sites

Ja vari garantēt, ka darbibas.id vienmēr būs lielāka vērtība jaunākai kvītij, tad:

SELECT k.id, k.nosaukums, d.id, d.kvits_id, d.darbiba FROM kvitis AS k LEFT JOIN darbibas AS d ON k.id = d.kvits_id WHERE d.id IN (SELECT max(d2.id) FROM darbibas AS d2 WHERE d2.kvits_id = k.id)

Link to comment
Share on other sites

Vispār neviens jūsu varinats nestrādās (izņemot ar SUBSELECT), jo

Ka lai dabu ierakstus par kvitim

nekādi LIMIT nelīdzēs.. atgriezīs tikai vienu kvīti

 

Ja grib visu selektēt optimizēti, tad kvīšu darbībām jāliek papildus lauks... "pēdējais"... atjaunot to pie inserta

 

TRIGER_BEFORE_INSERT
START
  UPDATE KVITS_DARBIBAS
  SETTING IS_LAST = 0
  WHERE kvits_id = current_record.kvits_id AND darbibas_tips = current_record.darbibas_tips
END

 

Vēlāk vienkārši smuks selekts ;)

Edited by Delfins
Link to comment
Share on other sites

Varēji jau pirmo postu needitēt, bet vnk jaunu komentāru ierakstīt...

select k.nosaukums, d.darbiba from kvitis k left join darbibas d on k.id = d.kvits_id where d.darbiba='pag.' ORDER BY d.id desc LIMIT 0, 1

Link to comment
Share on other sites

Vispār neviens jūsu varinats nestrādās (izņemot ar SUBSELECT), jo

nekādi LIMIT nelīdzēs.. atgriezīs tikai vienu kvīti

nu re te jau paceļās jautājums vai vajag par vienu ierakstu vai vāirākiem.

 

Un parādās arī MySQLa trūkumi - nav analītisko f-ju piemēram row_number() :)

Būtu analītiskās f-jas varētu vismaz source tabulas skanēt tikai 1 reizi.

 

Gints Plivna

http://datubazes.wordpress.com

Link to comment
Share on other sites

×
×
  • Create New...