Kezdőoldal » Számítástechnika » Programozás » SQL-ben hogy tudok kiválasztan...

SQL-ben hogy tudok kiválasztani így egy sort?

Figyelt kérdés

Van két táblám, pl. gazda meg kutya.


Azokra a sorokra van szükségem a gazda táblákból, amely gazdáknak nincs kutyája, vagy valamelyik kutyája kevesebb mint 3 éves. Vagy inkább két lekérdezésből kéne megoldani?



2016. jan. 27. 16:28
 1/10 anonim ***** válasza:
A táblaszerkezetet azért megadhatnád.
2016. jan. 27. 16:32
Hasznos számodra ez a válasz?
 2/10 anonim ***** válasza:
51%

SELECT gazdaid FROM gazdák

WHERE gazdaid NOT IN(SELECT gazdaid FROM kutyák)

OR gazdaid IN(SELECT gazdaid FROM kutyák WHERE kutyakor<3)


Szerintem, aztán lehet, hogy ez nem is jó.

2016. jan. 27. 16:33
Hasznos számodra ez a válasz?
 3/10 A kérdező kommentje:
#2 Köszönöm, mindjárt kipróbálom! :)
2016. jan. 27. 16:36
 4/10 anonim ***** válasza:
51%

Ajj, azt hiszem kell összekapcsolás is, tehát:


SELECT gazdaid FROM gazdák

JOIN kutyák ON kutyák.gazdaid=gazdák.gazdaid

WHERE gazdaid NOT IN(SELECT gazdaid FROM kutyák)

OR gazdaid IN(SELECT gazdaid FROM kutyák WHERE kutyakor<3)

2016. jan. 27. 16:36
Hasznos számodra ez a válasz?
 5/10 A kérdező kommentje:

Tényleg kell a táblaszerkezet, mert ráadásul rosszul fogalmaztam meg a kérdést. :(


szóval, van egy tábla, ami az oltásokat tartalmazza, és egy ami azt hogy mely oltások hányszor lettek beadva kutyáknak, illetve egy kutya tábla, de onnan csak az azonosító kell


oltás tábla:


id

oltasneve


beadott:


oltasid

kutyaid

beadasokszama



szóval egy bizonyos kutya id-hez melyek azok az oltasok, amiket még sosem adtunk be, vagy kevesebb mint háromszor adtunk be.


(nyilván nem ez az eredeti feladat, csak azt még ennyire sem tudnám megfogalmazni... :D)

2016. jan. 27. 16:53
 6/10 anonim ***** válasza:
100%

Így esetleg:


SELECT

g.*, k.nev AS kutyanev

FROM

gazda g

LEFT JOIN

kutya k ON k.gazda_id = g.id

WHERE

k.id IS NULL OR k.kutyakor < 3

2016. jan. 27. 16:58
Hasznos számodra ez a válasz?
 7/10 anonim ***** válasza:

A második legkerülendőbb dolog az sql-ben a subselect, ha nem kényszerít valami ne használd.


(A legkerülendőbb meg a view, azt csak ha fizetnek érte)

2016. jan. 27. 17:02
Hasznos számodra ez a válasz?
 8/10 A kérdező kommentje:
#6 Na állat, így már működik. :) Köszönnöm! :)
2016. jan. 27. 17:03
 9/10 A kérdező kommentje:
Igen, a subselectet már nagyon rég használtam, mert egy csomó mindent nem lehet megcsinálni vele. A view-ről még csak nem is hallottam.... :D
2016. jan. 27. 17:07
 10/10 anonim ***** válasza:

A subselectel sokmindent meg lehet csinálni. A view meg nem más mint egy olyan select, ami táblaként látszik, és lekérdezel belőle.


Ami miatt érdemes meggondolni ezeket, az pedig a performancia issue. De sokszor elkerülhetetlen, de okosan indexelve, és a felhasználás gyakoriságát tekintve nincs vele gond.


Egyébként szerintem jobb egy view, mint egy alkalmazás oldalon tárolt bonyolult query.

2016. jan. 27. 17:42
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!