Topic: mysql užklausą, kuri išrinktų duomenis

Tokie lentelės duomenys, man reikia gauti tik tuos pg_id, kurių param yra 'pirmas' ir 'kitas duomuo'

L_id    id    pg_id  param
'193', '29', '332', 'pirmas'
'183', '17', '332', 'kitas duomuo'
'198', '17', '335', 'kitas duomuo'
'214', '17', '420', 'kitas duomuo'
'252', '29', '422', 'pirmas'
'264', '17', '422', 'kitas duomuo'
'265', '17', '423', 'kitas duomuo'
'281', '17', '424', 'kitas duomuo'
'304', '29', '425', 'pirmas'
'295', '17', '425', 'kitas duomuo'
'320', '29', '426', 'pirmas'
'309', '17', '426', 'kitas duomuo'
'325', '17', '427', 'kitas duomuo'
'352', '29', '428', 'pirmas'
'341', '17', '428', 'kitas duomuo'
'357', '17', '429', 'kitas duomuo'

rezultatas butu toks:

L_id    id    pg_id  param
'193', '29', '332', 'pirmas'
'183', '17', '332', 'kitas duomuo'
'252', '29', '422', 'pirmas'
'264', '17', '422', 'kitas duomuo'
'304', '29', '425', 'pirmas'
'295', '17', '425', 'kitas duomuo'
'320', '29', '426', 'pirmas'
'309', '17', '426', 'kitas duomuo'
'352', '29', '428', 'pirmas'
'341', '17', '428', 'kitas duomuo'

jei tokį padėtumėt išgauti, būčiau begalo dėkingas, galėčiau ir alaus pastatyti :D

2 (edited by aegis 2010-08-15 15:22:52)

Re: mysql užklausą, kuri išrinktų duomenis

SELECT * FROM `lentele` WHERE `param` = 'pirmas' OR `param` = 'kitas duomuo' <- čia užklausa atsižvelgiant į 'Tokie lentelės duomenys, man reikia gauti tik tuos pg_id, kurių param yra 'pirmas' ir 'kitas duomuo''. O rezultatų kuriuos pateikei tai nesupratau :)

edit: pataisiau užklausą

Re: mysql užklausą, kuri išrinktų duomenis

SELECT * FROM `lentele` WHERE `param` = 'pirmas' OR `pg_id` = 'kitas duomuo'

šitas išves man regis lygiai tuos pačius pradinius duomenis.

aiškinu dar kartą:
duomenys:

L_id    id    pg_id  param
'193', '29', '332', 'pirmas'
'183', '17', '332', 'kitas duomuo'
'198', '17', '335', 'kitas duomuo'
'214', '17', '420', 'kitas duomuo'

reikia gauti

'193', '29', '332', 'pirmas'
'183', '17', '332', 'kitas duomuo'

netinka

'198', '17', '335', 'kitas duomuo'
'214', '17', '420', 'kitas duomuo'

pg_id 335 netinka, nes nėra param, su 'pirmas', kurio pg_id ='335'
pg_id 420 irgi netinka, dėl tos pačios priežasties.

gal dabar aiškiau ?

Re: mysql užklausą, kuri išrinktų duomenis

Tau reikia ištraukti tas eilutes, kad būtų tiek 'pirmas', tiek 'kitas duomuo', kurie turi vienodą pg_id ?

Tada reikėtų self JOIN daryti

SELECT 
  L1.L_id as L1_id, L2.L_id as L2_id, ir t.t. su visais laukeliais
FROM lentele as L1  
LEFT JOIN lentele AS L2 ON (L1.pg_id = L2.pd_id)
WHERE L1.param = "pirmas" AND L2.param = "kitas domuo"

taip abu variantai bus sutraukti į vieną eilutę, ir rastos tik tos eilutės, kuriose yra abi sąlygos

Re: mysql užklausą, kuri išrinktų duomenis

Lukai, kokia mesmale tu cia surasei? :) Lentele yra viena, o ne dvi.

Re: mysql užklausą, kuri išrinktų duomenis

taip lentele viena.
rezultatai, ka reikia gauti.

Gal yra kazkokia galimybe susikurti virtuale lentele ar kazka pan. MySQL nelabai dar moku.

Re: mysql užklausą, kuri išrinktų duomenis

Ajaks wrote:

Lukai, kokia mesmale tu cia surasei? :) Lentele yra viena, o ne dvi.

O kas tau sakė, kad negalima lentelės jungti su pačia savimi?
http://www.google.lt/search?q=mysql+self+join

SvynisTodas:
O kokią klaidą/rezultatą per phpMyAdmin grąžina mano užklausa?

8 (edited by SvynisTodas 2010-08-15 21:31:17)

Re: mysql užklausą, kuri išrinktų duomenis

Lukai, labai atsiprašau, pradėjau rėkauti nepabandęs. žiauriai dėkui, viskas pavyko. lieku skolingas :)

Re: mysql užklausą, kuri išrinktų duomenis

Lukas wrote:
Ajaks wrote:

Lukai, kokia mesmale tu cia surasei? :) Lentele yra viena, o ne dvi.

O kas tau sakė, kad negalima lentelės jungti su pačia savimi?
http://www.google.lt/search?q=mysql+self+join

SvynisTodas:
O kokią klaidą/rezultatą per phpMyAdmin grąžina mano užklausa?

Lukai, gera informacija zinojimui. Dekui.