Jump to content
php.lv forumi

Izselektēt no divām tabulām


john.brown

Recommended Posts

Ir divas tabulas:

 

cat_id | parent_id | image

 

cat_id | lng | title | desc

 

Pirmajā tabulā katrs cat_id ir unikāls, otraja - cat_id+lng uninikāli. Gribētos ar vienu selectu dabūt ārā ierakstu no pirmās tabulas un visus ierakstus ar doto cat_id no otrās. Pašam galvā ir tik variants ar diviem selectiem :(

Link to comment
Share on other sites

jā, viss ir jauki, tik tā viņš atgiež tik datasetus cik ierakstu tabulā divi priekš katra cat_id. Tak jauki būtu to sabāzt vienā datasetā (tipa daudzmēru masīva), un pavisam skaisti, sašķirot pēc viena no tabulas 2 lauciņiem rindām ar noteiktu lng, tipa ORDER BY t2.title WHERE lng='lv'... (tik domas ilustrācijai)

Ir tas iespējams?

Edited by john.brown
Link to comment
Share on other sites

Jā, dotajā gadījumā ar datasetu biju domājis rindiņu, atvainojos par neprecizitāti.

Sarežģīti, var būt... Tagad es to kārtoju ar skript, tak tā while() kļutu reizes īsāks un pati kārtošana prastāka. Bet ja ne, ne... Lai paliek kā ir :)

Vot sāku domāt, varbūt tiešām vienkāršāk...

 

Nē, nekā nebij, neiznāk vienkāršāk. Man vajadzētu minimāli dabūt t1.cat_id,t1.image, t2.title, t2.desc priekš vienas lng vērtības, un visas lng vērtības priekš cat_id.

Edited by john.brown
Link to comment
Share on other sites

man ir muļķīgs līdzīgs jautājums, kāvarētu dabūt no 2 tabulām kaut ko šādu:

 

tab1

 

ID NAME1

A aaaa

B bbbb

C cccc

 

tab2

 

ID NAME2

A www

A qqqq

B uuuuu

A oooo

B iiii

 

Jādabū laukā šāds:

 

aaa www+qqqq+oooo

bbb uuuu+iiii

Link to comment
Share on other sites

Nekur neliksies - nāksies apstrādāt datus ar php. Mysql nav tādas agregātfunnkcijas, kas apvienotu tekstuālus ierakstus (skaitļiem - SUM()).

 

 

nu man tipa oraclis

 

a kaa labaak iekš php apstraadaat?

selecteejam vienu, selecteejam otru un kaa tad?

Edited by mrgenator
Link to comment
Share on other sites

SELECT * FROM tab1 a LEFT JOIN tab2 b ON a.id = b.id WHERE b.id IS NOT NULL ORDER BY a.id

 

Un tad brauc cauri ar php un skaiti kopā...

 

 

tev gadiijumaa kaut kur nemeetaajaas abals, kas skaita kopaa? Sorii, loms uz briidi domaat iestaajies.

 

Ar oracli izskataas, ka var tikt cauti tikai creatojot funkciju un useejot to.

Link to comment
Share on other sites

CONCAT() NAV agregātfunkcija. Bet GROUP_CONCAT() gan ir:

 

http://dev.mysql.com/doc/refman/5.1/en/gro...-functions.html

 

P.S. Funkcija ieviesta sākot no MySQL 4.1 versijas.

 

SELECT a.id, GROUP_CONCAT(b.name2, '+') FROM tab1 a LEFT JOIN tab2 b ON a.id = b.id WHERE b.id IS NOT NULL GROUP BY a.id ORDER BY a.id

Edited by GedroX
Link to comment
Share on other sites

×
×
  • Create New...