Hirdetés
- TCL LCD és LED TV-k
- Úgy állhat le a 16 GB-os GeForce RTX 5060 Ti gyártása, hogy közben nem áll le
- 3D nyomtatás
- OLED TV topic
- Lenovo Legion és IdeaPad Y széria
- Azonnali informatikai kérdések órája
- Házimozi belépő szinten
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Amlogic S905, S912 processzoros készülékek
- Vezetékes FEJhallgatók
- Luck Dragon: Asszociációs játék. :)
- sziku69: Szólánc.
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- Klaus Duran: Minden drágul. Vajon a fizetések 2026-ban követi minimálisan?
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
Új hozzászólás Aktív témák
-
Jester01
veterán
válasz
bbTamas77
#1863
üzenetére
Fentiek alapján nap-óra-perc-másodperc például imígyen megkapható:
SELECT CONCAT((UNIX_TIMESTAMP('2013-12-24 18:00') - UNIX_TIMESTAMP('2013-08-01 18:49')) DIV 86400, ' ',
SEC_TO_TIME((UNIX_TIMESTAMP('2013-12-24 18:00') - UNIX_TIMESTAMP('2013-08-01 18:49')) % 86400))Kicsit csúnya, hogy kétszer kell benne elvégezni a kivonást de a SEC_TO_TIME az csak korlátozott különbséget tud egyébként kezelni. A DATEDIFF pedig buta mert az idő részt figyelmen kívül hagyja.
-
Jester01
veterán
válasz
bbTamas77
#1853
üzenetére
A probléma az, hogy két időpont között ebben a formában lehet, hogy azonos eredményt kapsz amikor különböző időtartam volt valójában, hiszen az év illetve a hónapok hossza különbözhet.
Ha valami 1 hónapja volt, az függ attól az előző hónap milyen hosszú volt. Ha ez neked jó, akkor nincs gond. -
Jester01
veterán
válasz
WonderCSabo
#741
üzenetére
Az i.first_name, i.last_name akkor sem lesz kiválasztható.
-
Jester01
veterán
select t1.*,t2a.listing_field_value field1,t2b.listing_field_value field2 from t1,t2 t2a,t2 t2b where t2a.user_id = t1.user_id and t2a.listing_id = t1.listing_id and t2a.listing_field_name = 'field1' and t2b.user_id = t1.user_id and t2b.listing_id = t1.listing_id and t2b.listing_field_name = 'field2';
-
Jester01
veterán
válasz
Apollo17hu
#541
üzenetére
Hát mert nem mondtad milyen adatbázisod van ... mysql esetén működik, kipróbáltam.
-
Jester01
veterán
válasz
Apollo17hu
#539
üzenetére
SELECT A FROM t GROUP BY A HAVING COUNT(DISTINCT B) > 1
Ez persze az A értékeket adja meg, de innen gondolom már megy.
-
Jester01
veterán
válasz
vakondka
#510
üzenetére
A join miatt termék-attribútum párokat kapsz, mégpedig annyit ahány egyezés volt az attribútum (tehát nem a termék!) szerint. Azt kell megnézni, hogy melyik termékhez van pontosan annyi sor ahány feltétel volt, ezért van a group by és a having. Ha lehagyod azt a részt akkor láthatod hogy néz ki a join eredménye. Ha több feltételed van, akkor azt a kettes számot ott át kell írni értelemszerűen.
-
Jester01
veterán
válasz
vakondka
#508
üzenetére
Szerintem elég lesz 1 join is.
SELECT pef.products_id
FROM products_to_products_extra_fields pef
LEFT JOIN products p ON p.products_id = pef.products_id
WHERE
(pef.products_extra_fields_id = 2 AND pef.products_extra_fields_value = 'piros') OR
(pef.products_extra_fields_id = 4 AND pef.products_extra_fields_value = '3')
GROUP BY pef.products_id
HAVING count(*) = 2 -
Jester01
veterán
Tulajdonképpen ha van string összefűzésre aggregáló függvény akkor meg lehet oldani egy GROUP BY kitétellel. Nem mondtad milyen adatbázis, mysql-ben van ilyen GROUP_CONCAT néven. MS SQL-ben és Oracle alatt is lehet rá workaroundot csinálni gugli szerint. Úgy látszik kicsit elhamarkodottan állítottam, hogy nem lehet.

-
Jester01
veterán
1. Az alias nem befolyásolja a where-t, ott attól még nyugodtan lehet használni az eredeti nevet is.
2. ez valami rettentő nagy eredményt ad: Ugyanis az al-selectben ha nem írod ki explicit a táblanevet/aliast akkor az a belső táblá(k)ra vonatkozik. Tehát tulajdonképpen azonosságot írtál (eltekintve attól, hogy NULL != NULL). Helyesen a külső selectben kell megadni tábla aliast és arra hivatkozni. Így ni:select bla, bla2, bla3, bla4,
(select count(*) from tabla where bla = kulso.bla) from tabla kulso where ... -
Jester01
veterán
válasz
Louloudaki
#257
üzenetére
Az adatmennyiségtől erősen függ. Sok rekord esetén a join gyorsabb lesz.
-
Jester01
veterán
SELECT title, name FROM videos, members, borrows WHERE videos.videoid = borrows.videoid AND members.memberid = borrows.memberid AND members.dateofbirth = (SELECT min(members.dateofbirth) FROM borrows, members WHERE borrows.videoid=videos.videoid AND borrows.memberid = members.memberid)
Ezzel az lehet még a baj, hogy több azonos korú tag is kivehette a filmet, a fenti lekérdezés ilyenkor visszaadja mindet. Ha csak egy kell, akkor még egy group by-t lehet a végére akasztani.
Érdekességképpen egy hack megoldás, amibe nem kell al-select:
SELECT SUBSTR(MIN(TO_CHAR(members.dateofbirth, 'YYYY-MM-DD') || members.name), 11), videos.title
from borrows, videos, members
WHERE borrows.video=videos.videoid AND borrows.member=members.memberid
GROUP BY videos.title; -
Jester01
veterán
válasz
Drótszamár
#224
üzenetére
Ja az megy. Azt hittem másik szerverhez kell kapcsolódni.

-
Jester01
veterán
válasz
Drótszamár
#217
üzenetére
Nem lesz jó a group by miatt.
-
Jester01
veterán
válasz
Drótszamár
#215
üzenetére
Mysql-re egyelõre csak ezt találtam: [link]
-
Jester01
veterán
válasz
Drótszamár
#213
üzenetére
Ez adatbáziskezelõtõl függ.
-
Jester01
veterán
Izé, ha azokat kell kiírni amiket egy évnél nem régebben vagy soha nem vettek ki, akkor úgyis van where szûrés, szóval a decode-ban már nem kell vele foglalkozni. Ha a dateofcreation dátum típusú, akkor azt lehet, hogy még szöveggé is illene konvertálni.
Kb valami ilyesmire gondoltam:
SELECT ... DECODE(borrows.dateofcreation, NULL, 'SOHA', TO_CHAR(borrows.dateofcreation)) ... WHERE borrows.dateofcreation IS NULL OR borrows.dateofcreation > sysdate - 365 -
Jester01
veterán
válasz
concret_hp
#204
üzenetére
Összakapcsolod a 2 táblát (join), csoportosítasz vevő szerint és szűrsz a darabszámra (HAVING COUNT(*) = 2)
-
Jester01
veterán
Új hozzászólás Aktív témák
- Minden a BlackBerry telefonokról és rendszerről
- Luck Dragon: Asszociációs játék. :)
- ZEN.com
- Napelem
- Battlefield 6
- TCL LCD és LED TV-k
- Nem tudom a dal címét, előadóját
- AliExpress tapasztalatok
- Adguard Premium (Android, PC és egyéb rendszerekre, valamint böngészőkhöz)
- Úgy állhat le a 16 GB-os GeForce RTX 5060 Ti gyártása, hogy közben nem áll le
- További aktív témák...
- Xiaomi Redmi Note 14 Pro / 8/256GB / Káértyafüggetlen / 12Hó Garancia
- BESZÁMÍTÁS! MSI MAG B550 R7 5700X 32GB DDR4 1TB SSD RX 9070 XT 16GB NZXT H440 fehér GIGABYTE 750W
- Honor 90 Lite 256GB, Kártyafüggetlen, 1 Év Garanciával
- Új! Razer Iskur V2 - Black gamer szék!
- AKCIÓ! Apple Watch SE 2024 44mm Cellular okosóra garanciával hibátlan működéssel
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest




