Autorius Tema: [Klausimas] Kaip istraukti skirtingas reiksmes pagal dviguba salyga?  (Skaityta 173 kartus)

Neprisijungęs ganjabest

  • Dalyvis
  • **
  • Įrašai: 962
  • Karma: +41/-1
  • Povilas Stankevičius
    • Žiūrėti profilį
Sveiki, vel nedirba galva, todel reikia pagalbos.

Turiu tarkim lentele :

     |  id  |  a  |  b  |
------------------------
 1. |  3   |  6  | 11 |
------------------------
 2. |  3   |  4  |  6  |
------------------------
 3. |  4   |  6  | 12 |
------------------------
 4. |  4   |  4  |  6  |

Man reikia istraukti skirtingus id, kurie turi reiksmes a = 6, b = 11 ir a = 4, b = 6 . Bet reikia istraukti tuos id, kurie turi ir tas ir tas reiksmes. Siuo atveju rezultatas turetu rodyti tik id = 3.
Visi žmonės kaip žmonės - tik aš vienas kaip dievas!

Neprisijungęs justinas

  • Naujokas
  • *
  • Įrašai: 163
  • Karma: +16/-3
    • Žiūrėti profilį
Ats: [Klausimas] Kaip istraukti skirtingas reiksmes pagal dviguba salyga?
« Atsakymas #1 Įrašytas: 2014-04-28 22:29:56 pm »
O primary key yra? (ir kodėl "id" vadinasi ne primary key...).

Pridėk, tada bus galima lengvai joinint su visais, kurie turi tokį pat "id" (bet ne primary key) ir taip atsirinkti.

Neprisijungęs ganjabest

  • Dalyvis
  • **
  • Įrašai: 962
  • Karma: +41/-1
  • Povilas Stankevičius
    • Žiūrėti profilį
Ats: [Klausimas] Kaip istraukti skirtingas reiksmes pagal dviguba salyga?
« Atsakymas #2 Įrašytas: 2014-04-28 22:55:24 pm »
Biski tiksliau parodysiu:

Pas  mane aisku kiti pavadinimai, bet cia id nera primary. Cia yra lentele kuri prijungia papildomus parametrus(a ir b) elementui kuris turi id. Cia kazkas tokio kaip opencart, kur yra priskiriami prekei parametrai (size - small, medium, large ir t.t.) .  Vienoj lentelej saugomi parametro pavadinimai, kitoje parametro reiksmes, kitoje prekes ir naudojama lentele visu situ dalyku sujungimui. O as darau filtra, pagal kuri reikia gaut skirtingas id reiksmes, kurias jau naudosiu tu elementu istraukimui . Nuorda mazdaug yra tokia ?size=small&colour=red

id - elementas
a  - parametro id
b  - parametro reiksmes id

Visi sitie id, a, b yra skirtingose lenteles ir cia jungiamoji lentele

 primary |  id  |  a  |  b  |
--------------------------------
      1      |  3   |  6  | 11 |
--------------------------------
      2      |  3   |  4  |  6  |
--------------------------------
      3      |  4   |  6  | 12 |
--------------------------------
      4      |  4   |  4  |  6  |

Minusas tas kad gaunu daugiau nei reikia . Nes kodas iesko atskirai kas turi a = 4 ir b = 6 arba a = 6 ir b = 11. O reikia, kad id turetu visas sitas reiksmes nepriklausomai nuo ju skaiciaus(nes cia kaip minejau filtras), jeigu isvis tai imanoma padaryt. Su daug uzklausu ir kodo padaryt galima, bet cia reiksmiu bus milijonai ir stengiuos tilpt i viena kazkokia tais uzklausa, kad nereiktu dirbti papildomai su visokiais masyvais ir ciklais.

Pagal filtra tai reikiamus a ir b ID issitraukiu (zemiau paveikslelyje matos). Tik dabar reikia is cia istraukti id reiksmes kurios turetu visas reiksmes gautas is filtro. Kaip sakiau issitraukus viska i masyva iseitu priburt ko man reikia, bet ar neatsilieps man kaip bus irasu milijonai ir tarkim ne dvi filtro kombinacijos o desimtys? Todel kazkaip ir suku galva ka cia geriau su pacia uzklausa sumastyt
« Paskutinį kartą keitė: 2014-04-29 01:50:55 am sukūrė ganjabest »
Visi žmonės kaip žmonės - tik aš vienas kaip dievas!

Neprisijungęs justinas

  • Naujokas
  • *
  • Įrašai: 163
  • Karma: +16/-3
    • Žiūrėti profilį
Ats: [Klausimas] Kaip istraukti skirtingas reiksmes pagal dviguba salyga?
« Atsakymas #3 Įrašytas: 2014-05-01 10:24:25 am »
http://sqlfiddle.com/#!2/19590/31/1
Štai toks sprendimas. Tik kažin, kiek efektyvus greičio atžvilgiu.

P.S. "man" daugiskaita yra "men" :)
« Paskutinį kartą keitė: 2014-05-01 17:20:44 pm sukūrė justinas »

Manualai.lt Forumas

Ats: [Klausimas] Kaip istraukti skirtingas reiksmes pagal dviguba salyga?
« Atsakymas #3 Įrašytas: 2014-05-01 10:24:25 am »

Neprisijungęs ganjabest

  • Dalyvis
  • **
  • Įrašai: 962
  • Karma: +41/-1
  • Povilas Stankevičius
    • Žiūrėti profilį
Ats: [Klausimas] Kaip istraukti skirtingas reiksmes pagal dviguba salyga?
« Atsakymas #4 Įrašytas: 2014-05-02 23:12:45 pm »
Dekui labai. Apie tai ir sukosi mintys, tik nesupratau kaip taisyklingai suformuluoti uzklausa, kad veiktu. Gerai bus cia manau. Kazkada kazkur tokia uzklausas naudojes,  bet kaip retai reikalingos, tai "issilaksto" viskas is galvos kazkur.

P.S. jo, su anglu ne kas..
Visi žmonės kaip žmonės - tik aš vienas kaip dievas!

Manualai.lt Forumas

Ats: [Klausimas] Kaip istraukti skirtingas reiksmes pagal dviguba salyga?
« Atsakymas #4 Įrašytas: 2014-05-02 23:12:45 pm »