| | |
| Stránka: 1 z 1
| [ Príspevkov: 9 ] | |
Autor | Správa |
---|
Registrovaný: 20.03.08 Prihlásený: 08.03.17 Príspevky: 596 Témy: 149 Bydlisko: Houston, Texas | Napísal Unlink: 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
|
|
Registrovaný: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 |
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á
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
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 |
|
Registrovaný: 20.03.08 Prihlásený: 08.03.17 Príspevky: 596 Témy: 149 Bydlisko: Houston, Texas | Napísal autor témy Unlink: 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
|
|
Registrovaný: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 |
_________________ 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! |
|
Registrovaný: 20.03.08 Prihlásený: 08.03.17 Príspevky: 596 Témy: 149 Bydlisko: Houston, Texas | Napísal autor témy Unlink: 06.10.2009 16:58 | |
|
a niečo po slovensky by nebolo?
|
|
Registrovaný: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 | |
Registrovaný: 20.03.08 Prihlásený: 08.03.17 Príspevky: 596 Témy: 149 Bydlisko: Houston, Texas | Napísal autor témy Unlink: 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
|
|
Registrovaný: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 |
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
|
|
| Stránka: 1 z 1
| [ Príspevkov: 9 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| prikaz case v PHP, ASP | 8 | 753 | 14.03.2010 10:54 1daemon1 | | prikaz call v Operačné systémy Unix a Linux | 1 | 843 | 31.03.2006 1:04 XPM | | príkaz find v Operačné systémy Unix a Linux | 2 | 300 | 07.12.2013 20:18 ela | | Príkaz Spustiť.... v Sieťové a internetové programy | 3 | 482 | 12.01.2009 14:27 Draex | | Prikaz if v Assembler, C, C++, Pascal, Java | 5 | 519 | 25.11.2015 15:24 marian_r | | prikaz case v PHP, ASP | 3 | 426 | 02.03.2008 19:38 stenley | | c prikaz v Assembler, C, C++, Pascal, Java | 2 | 255 | 03.03.2014 23:05 Hegines21 | | prikaz iCaslc v Operačné systémy Microsoft | 0 | 331 | 30.08.2011 19:37 personal compuper | | delphi a prikaz v Delphi, Visual Basic | 8 | 1105 | 22.05.2008 8:55 imnotwhafo | | Zložený MySQL príkaz v Databázy | 0 | 375 | 08.05.2012 17:32 blazej44800 | | aky prikaz pouzit? v Ostatné | 12 | 844 | 13.02.2011 18:20 chameleo | | Polia , príkaz foreach v PHP, ASP | 4 | 867 | 30.12.2011 11:51 shaggy | | c prikaz for v Assembler, C, C++, Pascal, Java | 2 | 558 | 16.09.2011 11:58 mk* | | aky prikaz pouzit? v HTML, XHTML, XML, CSS | 3 | 426 | 16.06.2010 9:57 Ikinko | | príkaz s podmienkou v Databázy | 2 | 651 | 26.08.2008 21:00 jaji | | nefungujuci prikaz make v Operačné systémy Unix a Linux | 2 | 386 | 12.07.2012 19:25 emajko159 |
| 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
|
|