| Autor | Správa |
Feko
 Užívateľ
 Založený: 30.09.2007 Príspevky: 143
 | Zaslal: So 01.10.11 19:57 |   |
Ahojte.
Mam problem s LEFT JOINom v ON :
| kód: | | ON dept.dept_id IN (staff.dept_id) |
V dept_id mam napr. 1,3,4. Do uvahy vsak berie len jednicku. Ak zamenim staff.dept_id za 1,3,4 ide vsetko ako ma.
Ako by sa to dalo?
Za typy vopred vdaka.
// pridané po 4 hodinách 44 minútach od posledného príspevku
Ok, tak odpoved pre next generation.
| kód: | | ON POSITION(dept.dept_id IN staff.dept_id)>0 |
Ani cez IN, ani cez LIKE mi to jednoducho nefungovalo ako malo. Ako sa vravievalo v jednej reklame- C je spravne. |
| |
   |
 |
Feko
 Užívateľ
 Založený: 30.09.2007 Príspevky: 143
 | Zaslal: Po 10.10.11 11:56 |   |
Tak pre spravnu funkcnost si este raz sam odpoviem.
Riesenie cez pozition nebolo dobre, pretoze mi to naslo len výskyt 1 v 10 napr a bralo mi to obe.
Preto toto:
| kód: | | (FIND_IN_SET(dept.dept_id, staff.dept_id)) |
nahradza to IN verziu len s tym, ze to funguje aj s hodnotami stlpca. |
| |
   |
 |
coldak
 Skúsený užívateľ
 Založený: 29.10.2008 Príspevky: 936
 | Zaslal: Po 10.10.11 14:56 |   |
teraz nerozumiem, staff.dept_id obsahovalo retazec "1,3,4" alebo vzdy len niektoru z hodnot 1,3,4 ? |
| |
  |
 |
Feko
 Užívateľ
 Založený: 30.09.2007 Príspevky: 143
 | Zaslal: Po 10.10.11 19:01 |   |
|
   |
 |
emer
 Užívateľ
 Založený: 26.12.2006 Príspevky: 3683 Bydlisko: Nitra Vek: 18
 | Zaslal: Po 10.10.11 19:25 |   |
zrejme si to zle predstavujes, budto si prerob strukturu tabulky, lebo ju mas zlu alebo sa skus pohrat s docasnymi tabulkami.. prva varianta je samozrejme jednoduchsia a lepsia
// pridané po 6 minútach od posledného príspevku
http://www.programmingfacts.com/mysql-split-explode-function/ mozno aj toto ti pomoze |
_________________ Pocity popi*i, keď víš že všetko hrá jak má, vychádza to všetko pekne, tak jak má, hovorim si ná ne, musíš vedeť plánovať | |
    |
 |
Feko
 Užívateľ
 Založený: 30.09.2007 Príspevky: 143
 | Zaslal: Po 10.10.11 19:58 |   |
ako jasan ze sa to da a malo by sa to vytiahnut do medzitabulky. Ale napajam sa na aplikaciu a maju to tam tak, tak som sa prisposobil. Cez FIND_IN_SET to pekne krasne hlada v cislach ako v indexoch a nie je potrebna nova funkcia.
Je to takto nejak prehnane zatazujuce? Poucte ma.
Dik |
| |
   |
 |
coldak
 Skúsený užívateľ
 Založený: 29.10.2008 Príspevky: 936
 | Zaslal: Po 10.10.11 20:15 |   |
preco si nepouzil staff.dept_id = ',1,3,4,' a potom staff.dept_id like '%,'||dept.dept_id||',%' |
| |
  |
 |
Feko
 Užívateľ
 Založený: 30.09.2007 Príspevky: 143
 | Zaslal: Po 10.10.11 20:44 |   |
staff.dept_id ma sice hodnotu 1,3,4, ale toto- staff.dept_id like '%,'||dept.dept_id||',%'
v takom tvare jednoducho nepreslo. Porovnalo mi len s prvym cislom ostatne ignorovalo.
Vlastne tam bol iny problem tusim. vsetky stlpce povazovalo za zhodu. Aj ked som mal staff.dept_id 1,3,5 napr a dept.dept_id 4 |
| |
   |
 |
|