Autor | Zpráva | ||
---|---|---|---|
kopo Profil |
Dobrý den,
potřeboval bych poradit se sestavením sql dotazu. Mám dvě tabulky: poptávky (...,id_produkt,...) a financování (...,id_produkt,hodnota,..). V tabulce financování může být stejné id_produkt vícekrát. Potřebuju zjistit počet poptávek na produkty, ke kterým je nabízeno financování. To znamená projít tabulku poptávek a porovnávat, jestli poptavky.id_produkt = financovani.id_produkt. Asi trošku problém je, že v tabulce financování jsou i produkty, které mají hodnotu financování 0 (tzn. že financování k produktu momentálně není). Takže tyto produkt vybírat nechci. Nástřel tedy je: poptavky.id_produkt = financovani.id_produkt WHERE financovani.hodnota != 0. tabulky vypadají takto: poptávky id | id_produkt 1 | 11 2 | 12 financování id | id_produkt | doba | hodnota 1 1 3 1000 2 2 3 0 3 1 6 1200 V tomto případě, i když je poptávka na produkt 2, nezapočítám ji, protože na produkt 2 je nulová hodnota financování. Zkoušel jsem toto: <? $query = mysqli_query($conn,"select poptavky.id_produkt from poptavky join financovani on poptavky.id_produkt = financovani.id_produkt WHERE financovani.hodnota != 0 "); $pocet = mysqli_num_rows($query); ?> Ale někde je asi logická chyba. Vrací mi to jiné hodnoty než by mělo. Děkuji za rady |
||
CZechBoY Profil |
#2 · Zasláno: 18. 8. 2016, 23:38:27
tzn něco jako
SELECT p1.id_produkt, ( SELECT COUNT(poptavky.id) FROM poptavky JOIN financovani ON poptavky.id_produkt = financovani.id_produkt WHERE poptavky.id_produkt = p1.id_produkt AND financovani.hodnota != 0 ) pocet_poptavek FROM poptavky p1 |
||
kopo Profil |
#3 · Zasláno: 18. 8. 2016, 23:57:53
myslím, že jste to pochopil správně, ale tenhle dotaz mi nevypisuje nic, ani chybu ani hodnotu. ale tahle cesta bude správná.
|
||
kopo Profil |
#4 · Zasláno: 19. 8. 2016, 16:57:01
Zadal jsem dotaz do php adminu a vypisuje toto
id_produkt | pocet_poptavek 5 | 0 2 | 15 2 | 15 2 | 15 2 | 15 4 | 0 1 | 0 3 | 0 11 | 0 11 | 0 11 | 0 2 | 15 22 | 0 26 | 1 11 | 0 To je vlastně správně. na produkt s id 2 je 15 poptávek a na produkt id=26 je 1 poptávka. tam, kde jsou nuly jsou produkty, na které není financování. Jak ted mám vypsat jen počet produktů s id 2 a 26? To znamená záznamy, kde pocet_poptavek != 0. Děkuji mnohokrát |
||
juriad Profil |
#5 · Zasláno: 19. 8. 2016, 17:28:12
Nějak mi uniká smysl existence tabulky poptávek, vždyť není s financováním nijak těsně propojená.
SELECT f.id_produkt, COUNT(*) FROM financovani f WHERE f.hodnota != 0 GROUP BY f.id_produkt |
||
kopo Profil |
#6 · Zasláno: 19. 8. 2016, 21:03:43
propojené nejsou. Má to být pouze jako statistický údaj. do poptávek se ukládají poptávky na všechny produkty. a ve financování jsou také všechny produkty, akorát,ke kterým není přiřazeno financování je hodnota = 0. a já chci vypsat jen poptávky na produkty, které nabízejí financování.
|
||
Časová prodleva: 9 let
|
0