Obsah fóra
PravidláRegistrovaťPrihlásenie




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

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 02.04.11
Prihlásený: 14.08.14
Príspevky: 74
Témy: 31
Príspevok NapísalOffline : 31.05.2011 12:03

Caute, snazim sa vytvorit velmi zlozity SELECT, tak snad mi tu bude niekto vediet pomoct...
Mam 3 tabulky: firmy, firmy_kat_2 a firmy_hodnotenie.
Mojim cielom je spojit ich v jednom SELECTE a zoradit podla nasledujucich kriterii.
1. Firmy co maju zaplateny profil su prve
2. Zaplatene firmy sa daju hodnotit, takze tie zoradit podla hodnotenia ( hodnotenie je jednoduche, je to tabulka firmy_hodnotenie) kladny hlas je 100 a zaporny 0. Zoradit to nechcem ale podla obycajneho priemeru ale podla SUM(hodnotenie), aby bol relevantny aj pocet hlasov....
3. Ostatne nezaplatene teda ani nehodnotene firmy zoradit podla nazvu....

Momentalne mi funguje tento SELECT, lenze tu niesu tie platene firmy zoradene podla hodnotenia...
Kód:
SELECT firmy_kat_2.firma, firmy.kraj, firmy.zaplatene FROM firmy_kat_2 INNER JOIN firmy ON firmy_kat_2.firma=firmy.id WHERE firmy_kat_2.kategoria='$r_kat_2[id]' AND firmy.zobrazit='ano' AND firmy.kraj='$_GET[filter_id]' ORDER BY firmy.zaplatene DESC, firmy.nazov


Potrebujem tam vsak pridat to zoradenie podla hlasovania.
Tabulka hlasovania vyzera nasledovne:
Kód:
CREATE TABLE `firmy_hodnotenie` (
  `id` int(11) NOT NULL auto_increment,
  `firma` int(10) NOT NULL,
  `hodnotenie` varchar(250) NOT NULL,
  `ip` varchar(250) NOT NULL,
  `datum` date NOT NULL,
  PRIMARY KEY  (`id`)
)


Skusal som ten SELECT spravit takto ale, nerobi to to co chcem... Vyhodi to len jeden zaznam z DB...
Kód:
SELECT firmy_kat_2.firma, firmy.kraj, firmy.zaplatene, SUM(firmy_hodnotenie.hodnotenie) AS spolu FROM firmy_kat_2 INNER JOIN firmy ON firmy_kat_2.firma=firmy.id JOIN firmy_hodnotenie ON firmy_hodnotenie.firma=firmy.id WHERE firmy_kat_2.kategoria='$r_kat_2[id]' AND firmy.zobrazit='ano' AND firmy.kraj='$_GET[filter_id]' ORDER BY firmy.zaplatene DESC, spolu, firmy.nazov


Keby mi niekto vedel pomoct, velmi by som to ocenil...


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2
Príspevok NapísalOffline : 31.05.2011 12:59

1, nastuduj si rozdiel medzi INNER JOIN a JOIN
2, daj sem aj definicie tabuliek firmy a firmy_kat_2
3, k tabulkam priloz aj nejake vzorove data


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 02.04.11
Prihlásený: 14.08.14
Príspevky: 74
Témy: 31
Príspevok Napísal autor témyOffline : 31.05.2011 13:12

Kód:
CREATE TABLE `firmy` (
  `id` int(11) NOT NULL auto_increment,
  `zobrazit` varchar(250) collate utf8_slovak_ci NOT NULL,
  `nazov` text collate utf8_slovak_ci NOT NULL,
  `zaplatene` date NOT NULL,
  `kraj` int(10) NOT NULL,
  `okres` int(10) NOT NULL,
  `ulica` varchar(250) collate utf8_slovak_ci NOT NULL,
  `mesto` varchar(250) collate utf8_slovak_ci NOT NULL,
  `psc` varchar(250) collate utf8_slovak_ci NOT NULL,
  `email` varchar(250) collate utf8_slovak_ci NOT NULL,
  `login` varchar(250) collate utf8_slovak_ci NOT NULL,
  `heslo` varchar(250) collate utf8_slovak_ci NOT NULL,
  `telefon` varchar(250) collate utf8_slovak_ci default NULL,
  `fax` varchar(250) collate utf8_slovak_ci NOT NULL,
  `mobil` varchar(250) collate utf8_slovak_ci NOT NULL,
  `ico` int(11) default NULL,
  `dic` varchar(250) collate utf8_slovak_ci NOT NULL,
  `ic_dph` int(11) default NULL,
  `obrazok` varchar(250) collate utf8_slovak_ci NOT NULL,
  `web` varchar(250) collate utf8_slovak_ci NOT NULL,
  `popis_short` text collate utf8_slovak_ci NOT NULL,
  `popis` text collate utf8_slovak_ci NOT NULL,
  `mapa` text collate utf8_slovak_ci NOT NULL,
  `akcia` varchar(250) collate utf8_slovak_ci NOT NULL,
  `datum` datetime NOT NULL,
  PRIMARY KEY  (`id`)
)

INSERT INTO `firmy` VALUES (4, 'ano', 'AUTO DANUBIUS s.r.o.', '2012-01-01', 1, 0, 'Trnavská cesta 39', 'Bratislava - Nové Mesto', '831 04', '', '', '', '', '', '', 0, '', 0, '', '', '', '', '', '', '2011-03-19 21:27:54');


Kód:
CREATE TABLE `firmy_kat_2` (
  `id` int(11) NOT NULL auto_increment,
  `firma` int(11) NOT NULL,
  `kat_1` int(10) NOT NULL,
  `kategoria` int(10) NOT NULL,
  PRIMARY KEY  (`id`)
)

INSERT INTO `firmy_kat_2` VALUES (9, 5, 6, 11);


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2
Príspevok NapísalOffline : 31.05.2011 19:48

takze zlozity select nieje ani zdaleka zlozity, hned z rukava ti davam dve moznosti
Kód:
SELECT FIRMY_KAT_2.FIRMA, FIRMY.KRAJ, FIRMY.ZAPLATENE, (select sum(FIRMY_HODNOTENIE.HODNOTENIE) from  FIRMY_HODNOTENIE where FIRMY_HODNOTENIE.FIRMA=FIRMY.ID )AS SPOLU
FROM FIRMY_KAT_2 JOIN FIRMY ON FIRMY_KAT_2.FIRMA=FIRMY.ID       
WHERE FIRMY_KAT_2.KATEGORIA=11
AND FIRMY.ZOBRAZIT='ano'
AND FIRMY.KRAJ=1
ORDER BY firmy.zaplatene DESC, spolu, firmy.nazov


Kód:
SELECT FIRMY_KAT_2.FIRMA, FIRMY.KRAJ, FIRMY.ZAPLATENE, sum(FIRMY_HODNOTENIE.HODNOTENIE) AS SPOLU
FROM FIRMY_KAT_2 JOIN FIRMY ON FIRMY_KAT_2.FIRMA=FIRMY.ID
                 LEFT JOIN FIRMY_HODNOTENIE ON FIRMY_HODNOTENIE.FIRMA=FIRMY.ID
WHERE FIRMY_KAT_2.KATEGORIA=11
AND FIRMY.ZOBRAZIT='ano'
AND FIRMY.KRAJ=1
group by FIRMY_KAT_2.FIRMA, FIRMY.KRAJ, FIRMY.ZAPLATENE
ORDER BY firmy.zaplatene DESC, spolu, firmy.nazov


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 02.04.11
Prihlásený: 14.08.14
Príspevky: 74
Témy: 31
Príspevok Napísal autor témyOffline : 01.06.2011 12:39

No vyskusal som tieto dve moznosti, ale ziadna to nezobrazuje podla scitania tych hodnoteni. Firmy vypise dobre z DB ale stale som tam kde som bol...


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2
Príspevok NapísalOffline : 01.06.2011 13:13

no mozno preto ze selecty ktore som ti poslal boli zatial iba opravou tvojho problemu ze ti tvoj select vracal iba jeden riadok. mozno ak vysvetlis ako identifikujem firmu ktora ma zaplateny profil tak by sme sa pohli dalej.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 02.04.11
Prihlásený: 14.08.14
Príspevky: 74
Témy: 31
Príspevok Napísal autor témyOffline : 01.06.2011 13:23

V tabulke FIRMY je stlpec ZAPLATENE (date), takze ak je datum vacsi ako dnes, tak je zaplatena a konkretne do toho datumu....
A princip hodnotenia som popisal v prvom prispevku...


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2
Príspevok NapísalOffline : 01.06.2011 14:07

nenijesom odbornik na mysql, ale preco nepouzijes IF ?
Kód:
SELECT FIRMY_KAT_2.FIRMA, FIRMY.KRAJ, FIRMY.ZAPLATENE, sum(FIRMY_HODNOTENIE.HODNOTENIE) AS SPOLU
 FROM FIRMY_KAT_2 JOIN FIRMY ON FIRMY_KAT_2.FIRMA=FIRMY.ID
                  LEFT JOIN FIRMY_HODNOTENIE ON FIRMY_HODNOTENIE.FIRMA=FIRMY.ID
 WHERE FIRMY_KAT_2.KATEGORIA=11
 AND FIRMY.ZOBRAZIT='ano'
 AND FIRMY.KRAJ=1
 group by FIRMY_KAT_2.FIRMA, FIRMY.KRAJ, FIRMY.ZAPLATENE
 ORDER BY IF(firmy.zaplatene<NOW(),1,0) , spolu, firmy.nazov

toto by malo zotriedit najprv tie co maju zaplateny profil a v ramci nich podla SUM(FIRMY_HODNOTENIE.HODNOTENIE) a nasledne este podla nazvu firmy


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 02.04.11
Prihlásený: 14.08.14
Príspevky: 74
Témy: 31
Príspevok Napísal autor témyOffline : 01.06.2011 21:04

No vyzera ze to ide. Dakujem velmi pekne za pomoc ;)


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. EXCEL zlozity vypocet

v Ostatné programy

0

391

04.09.2016 13:28

mkojtal Zobrazenie posledných príspevkov

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

v Databázy

2

529

17.03.2010 13:15

marek26 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. formular: presun <option> zo <select> do <select>

v JavaScript, VBScript, Ajax

2

747

28.09.2009 15:27

tomast7 Zobrazenie posledných príspevkov

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

v HTML, XHTML, XML, CSS

3

407

13.09.2012 21:49

1daemon1 Zobrazenie posledných príspevkov

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

v Databázy

6

1400

31.08.2006 13:50

tRizzO Zobrazenie posledných príspevkov

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

v Databázy

8

502

16.03.2012 14:09

zdeniatqo Zobrazenie posledných príspevkov

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

v PHP, ASP

7

638

02.05.2008 13:53

mondzo Zobrazenie posledných príspevkov

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

v Databázy

5

561

07.06.2010 14:08

MisakNo10 Zobrazenie posledných príspevkov

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

v HTML, XHTML, XML, CSS

5

577

06.06.2017 10:12

hatto13 Zobrazenie posledných príspevkov

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

v Databázy

2

621

07.07.2012 19:59

Ďuri Zobrazenie posledných príspevkov

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

v Databázy

0

0

01.01.1970 1:00

Hosť Zobrazenie posledných príspevkov

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

v Databázy

11

780

03.10.2010 11:06

KViki Zobrazenie posledných príspevkov

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

v Databázy

1

933

04.01.2009 19:24

rooobertek Zobrazenie posledných príspevkov

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

v Databázy

2

586

18.05.2009 18:05

p360t Zobrazenie posledných príspevkov

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

v PHP, ASP

5

410

07.05.2009 19:08

Tominator Zobrazenie posledných príspevkov

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

v PHP, ASP

9

615

14.10.2008 9:24

B.A.X.O 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