[ 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 | 149
Bydlisko: Houston, Texas
NapísalOffline : 06.10.2009 9:17 | SQL prikaz

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 | 96
NapísalOffline : 06.10.2009 9:55 | SQL prikaz

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 | 51
Bydlisko: Bratislava
NapísalOffline : 06.10.2009 9:56 | SQL prikaz

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 | 149
Bydlisko: Houston, Texas
Napísal autor témyOffline : 06.10.2009 14:24 | SQL prikaz

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 | 96
NapísalOffline : 06.10.2009 16:45 | SQL prikaz

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 | 149
Bydlisko: Houston, Texas
Napísal autor témyOffline : 06.10.2009 16:58 | SQL prikaz

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 | 96
NapísalOffline : 06.10.2009 17:30 | SQL prikaz

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 | 149
Bydlisko: Houston, Texas
Napísal autor témyOffline : 06.10.2009 17:48 | SQL prikaz

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 | 96
NapísalOffline : 06.10.2009 19:21 | SQL prikaz

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


 [ Príspevkov: 9 ] 


SQL prikaz



Podobné témy

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

c prikaz

v Backend

2

327

03.03.2014 23:05

Hegines21

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

prikaz iCaslc

v Windows

0

386

30.08.2011 19:37

personal compuper

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

prikaz case

v Backend

8

841

14.03.2010 10:54

1daemon1

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

prikaz call

v Unix-like systémy

1

922

31.03.2006 1:04

XPM

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

príkaz find

v Unix-like systémy

2

376

07.12.2013 20:18

ela

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

Príkaz Spustiť....

v Sieťové programy

3

575

12.01.2009 14:27

Draex

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

Prikaz if

v Backend

5

615

25.11.2015 15:24

marian_r

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

prikaz case

v Backend

3

490

02.03.2008 19:38

stenley

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

nefungujuci prikaz make

v Unix-like systémy

2

493

12.07.2012 19:25

emajko159

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

delphi a prikaz

v Ostatné

8

1198

22.05.2008 8:55

imnotwhafo

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

Zložený MySQL príkaz

v Databázy

0

446

08.05.2012 17:32

blazej44800

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

aky prikaz pouzit?

v Ostatné

12

953

13.02.2011 18:20

chameleo

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

Polia , príkaz foreach

v Backend

4

940

30.12.2011 11:51

shaggy

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

c prikaz for

v Backend

2

664

16.09.2011 11:58

mk*

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

aky prikaz pouzit?

v Frontend

3

509

16.06.2010 9:57

Ikinko

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

príkaz s podmienkou

v Databázy

2

718

26.08.2008 21:00

jaji



© 2005 - 2026 PCforum, edited by JanoF