Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 9 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
SQL prikaz

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149
Bydlisko: Houston, Texas
Príspevok NapísalOffline : 06.10.2009 9:17

Ahojte mam príkaz ako tento
Kód:
SELECT a.*, u.user_name FROM articles a, users u WHERE u.user_name = a.article_autor LIMIT 0, 5;


a chcel by som načitat počet komentárov, skúsil som to takto

Kód:
SELECT a.*, u.user_name, (SELECT COUNT(comment_id) FROM komentare where clanok=a.article_id) AS pocet_komentarov FROM articles a, users u WHERE u.user_name = a.article_autor LIMIT 0, 5;


len mne ide o to že či sa to nedá nejak jednoduchšie, myslím menšou záťažou DB


Offline

Skúsený užívateľ
Skúsený užívateľ
SQL prikaz

Registrovaný: 09.07.08
Prihlásený: 17.01.15
Príspevky: 1585
Témy: 96
Príspevok NapísalOffline : 06.10.2009 9:55

skus
Kód:
SELECT a.*, u.user_name, COUNT(comment_id) AS pocet_komentarov
FROM articles a
INNER JOIN users u ON u.user_name = a.article_autor
LEFT JOIN komentare k ON clanok=a.article_id
GROUP BY a.article_id
LIMIT 0, 5;

Ale odmeraj si, ktorá alternatíva je rýchlejšia, neviem ti zaručiť, že táto je tá pravá orechová


Offline

Správca fóra
Správca fóra
SQL prikaz

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 06.10.2009 9:56

uchovavaj si celkovy pocet komentarov napr. v tabulke users, to je najrychlejsi a efektivny sposob ;) ak vsak pocitas komentare len ku konkretnemu clanku, tak by som mozno vytvoril novu tabulku (ale je to na zvazenie, ci by to az tak vyrazne zvysilo vykon)

zalezi od tvojich priorit, velkosti webu a odhadovaneho poctu komentarov... vies, v com je problem: ak pouzijes kompaktny sql prikaz, tak ten sa bude vykonavat vzdy, pre "vsetkych" userov, pri "vsetkych" clankoch a to je imho nezanedbatelna zataz aspon teda v porovnani s tym, keby si spravil len jednoduchy select... pri malom webe by som zvolil ten zlozitejsi prikaz, ale pri vacsom by som sa skor priklonil k uchovavaniu poctu komentarov...







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
SQL prikaz

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149
Bydlisko: Houston, Texas
Príspevok Napísal autor témyOffline : 06.10.2009 14:24

a nenapíešte mi nejaký vysvetlenie k
INNER JOIN users u ON u.user_name = a.article_autor
LEFT JOIN komentare k ON clanok=a.article_id
Ďakujem


Offline

Skúsený užívateľ
Skúsený užívateľ
SQL prikaz

Registrovaný: 09.07.08
Prihlásený: 17.01.15
Príspevky: 1585
Témy: 96
Príspevok NapísalOffline : 06.10.2009 16:45

http://dev.mysql.com/doc/refman/5.0/en/join.html







_________________
neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to!
Offline

Užívateľ
Užívateľ
SQL prikaz

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149
Bydlisko: Houston, Texas
Príspevok Napísal autor témyOffline : 06.10.2009 16:58

a niečo po slovensky by nebolo? :)


Offline

Skúsený užívateľ
Skúsený užívateľ
SQL prikaz

Registrovaný: 09.07.08
Prihlásený: 17.01.15
Príspevky: 1585
Témy: 96
Príspevok NapísalOffline : 06.10.2009 17:30

http://translate.google.com/translate?p ... ry_state0=
Dosť na prd preklad :D Skús ešte http://www.defm.fmph.uniba.sk/ludia/odr ... iklady.htm


Offline

Užívateľ
Užívateľ
SQL prikaz

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149
Bydlisko: Houston, Texas
Príspevok Napísal autor témyOffline : 06.10.2009 17:48

dik, ešte ma zaujíma jedna vec
keď mám príkaz
Kód:
SELECT a.*, u.user_name FROM articles a, users u WHERE u.user_name = a.article_autor LIMIT 0, 5;

tak tento príkaz ma háčik, a to ten že pokiaľ neexistuje user v tabuľke userov, tak mi nezobrazí ani ten článok, nedá sa aj toto nejak obísť, myslím nejak že by vrátilo null keď dám $result[user_name], ale článok by vypísalo


Offline

Skúsený užívateľ
Skúsený užívateľ
SQL prikaz

Registrovaný: 09.07.08
Prihlásený: 17.01.15
Príspevky: 1585
Témy: 96
Príspevok NapísalOffline : 06.10.2009 19:21

To, čo robíš ty, je presne to isté ako INNER JOIN. Prepíš to na LEFT JOIN a máš vybavené.
Kód:
SELECT a.*, u.user_name
FROM articles a LEFT JOIN users u ON u.user_name = a.article_autor
LIMIT 0, 5;

pričom user_name bude mať hodnotu NULL v prípade, že user neexistuje


Odpovedať na tému [ Príspevkov: 9 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. prikaz case

v PHP, ASP

8

753

14.03.2010 10:54

1daemon1 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. prikaz call

v Operačné systémy Unix a Linux

1

843

31.03.2006 1:04

XPM Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. príkaz find

v Operačné systémy Unix a Linux

2

300

07.12.2013 20:18

ela Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Príkaz Spustiť....

v Sieťové a internetové programy

3

482

12.01.2009 14:27

Draex Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Prikaz if

v Assembler, C, C++, Pascal, Java

5

519

25.11.2015 15:24

marian_r Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. prikaz case

v PHP, ASP

3

426

02.03.2008 19:38

stenley Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. c prikaz

v Assembler, C, C++, Pascal, Java

2

255

03.03.2014 23:05

Hegines21 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. prikaz iCaslc

v Operačné systémy Microsoft

0

331

30.08.2011 19:37

personal compuper Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. delphi a prikaz

v Delphi, Visual Basic

8

1105

22.05.2008 8:55

imnotwhafo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zložený MySQL príkaz

v Databázy

0

375

08.05.2012 17:32

blazej44800 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. aky prikaz pouzit?

v Ostatné

12

844

13.02.2011 18:20

chameleo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Polia , príkaz foreach

v PHP, ASP

4

867

30.12.2011 11:51

shaggy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. c prikaz for

v Assembler, C, C++, Pascal, Java

2

558

16.09.2011 11:58

mk* Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. aky prikaz pouzit?

v HTML, XHTML, XML, CSS

3

426

16.06.2010 9:57

Ikinko Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. príkaz s podmienkou

v Databázy

2

651

26.08.2008 21:00

jaji Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. nefungujuci prikaz make

v Operačné systémy Unix a Linux

2

386

12.07.2012 19:25

emajko159 Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra