INNER JOIN probléma
Sziasztok!
Új problémába ütköztem és ennek megoldásában kérnék segítséget.
Adott a lekérdezés, melyet össze kellene vetnem az egy évvel ezelőtti adatokkal és csak a közös elemeket listázni.Ezt hogy lehet egy körben lekérdezni? Köszönöm.
■ Új problémába ütköztem és ennek megoldásában kérnék segítséget.
Adott a lekérdezés, melyet össze kellene vetnem az egy évvel ezelőtti adatokkal és csak a közös elemeket listázni.
SELECT * FROM reszletek
INNER JOIN tabla
ON reszletek.id=tabla.id
WHERE tabla.szolgalat = '2'
AND reszletek.kesz = '1'
AND reszletek.adatbazis = '6'
AND reszletek.frissites_datum
BETWEEN '2016-01-01' AND '2016-08-31'
GROUP BY tabla.id
SELECT * FROM reszletek
INNER JOIN tabla
ON reszletek.id=tabla.id
WHERE tabla.szolgalat = '2'
AND reszletek.kesz = '1'
AND reszletek.adatbazis = '6'
AND reszletek.frissites_datum
BETWEEN '2017-01-01' AND '2017-08-31'
GROUP BY tabla.id
INTERSECT
Egy lehetséges megoldás például, hogy INTERSECT-tel veszed a két találati halmaz metszetét és utána használsz GROUP BY-t.
Üdv:
Dávid
Köszi az ötletet, de..
Úgy oldottam meg, hogy két tömbbe gyűjtöttem az adatokat, majd a tömbök metszetét listáztattam. Remélem, az lett, amit szerettem volna. :)
Szia!Ha már megvagy vele,
Ha már megvagy vele, akkor örülök. Ha viszont van még egy kis időd, akkor elmondanád, hogy miért nem jártál sikerrel? A metszetes megoldás nyilván feltételezi, hogy a rekordok a két találati halmazban azonos adattartalmúak. Erről nem írtál semmit, én csak a kérdésfeltevésed alapján feltételeztem ezt, de ha ez adott, akkor annak a megoldásnak működnie kell.
Kevés adat esetén nincs jelentősége, sok adat esetén viszont biztos, hogy jobban jársz, ha az adatbázis kezelővel végezteted el az ilyen típusú munkát, és nem kódból próbálod gereblyézgetni a rekordokat.
Üdv:
Dávid
Egyszerűen nem ment..
Egyszerűen nem ment az sql. Többféle módon is próbáltam intersecttel, de nem adott valós értékeket vissza.
Ezért döntöttem inkább a tömbösítésnél. :)
Köszi mégegyszer.