Zistenie poctu variantov – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Zistenie poctu variantov – MySQL – Fórum – Programujte.comZistenie poctu variantov – MySQL – Fórum – Programujte.com

 

majo
~ Anonymní uživatel
85 příspěvků
24. 1. 2018   #1
-
0
-

Caute,

znova som sa zasekol na jednom probleme a neviem sa s neho nejak rozumne dostat..

Mam tabulku produkty

----------------------------------------------------

id_produkt               is_variant

1                             0

2                             1

3                             1

4                             0

5                             0

6                             5

Teda produkt 1 ma varianty 2 a 3.

4 produkt nema ziadny iny variant.

5 produkt ma variant 6.

Ale samozrejme to plati aj "opacne"... Napr. produkt 2 ma variant 1 a 3.

Je nejak mozne rozumne zistit kolko variant je spolu pre id_produkt IN (2, 4) ? Spravny vysledok by mal byt 2 => 3 a 4 => 1.

Uplne som na tomto vymrzol a neviem na nic normalne prist.. Zacinam uz zaroven predpokladat, ze sposob ukladania variant bude na nic, kludne to prerobim do samostatnej tabulky ked tak.

diiiiiiiiiiiiik

Nahlásit jako SPAM
IP: 188.123.100.–
gna
~ Anonymní uživatel
1851 příspěvků
24. 1. 2018   #2
-
0
-

Souhlas, taková struktura je úplně na ... nic.

SELECT   Min(A.produkt),
         Count(A.produkt)
FROM     tabulka A
JOIN     tabulka B
WHERE    (
                  A.produkt = B.produkt
         OR       A.produkt = B.variant
         OR       A.variant = B.produkt
         OR       (
                           A.variant <> 0
                  AND      A.variant = B.variant))
AND      A.produkt IN (2,4)
GROUP BY A.produkt;
Nahlásit jako SPAM
IP: 213.211.51.–
majo
~ Anonymní uživatel
85 příspěvků
25. 1. 2018   #3
-
0
-

produkt 1,2,3 a 5,6 je v podstate ten isty, preto potrebujem vytvorit skupinu variant, ktora ich obsiahne.. zobrazovat sa bude vzdy len jeden z nich (to uz zariadi ina logika)

zmenil som strukturu takto:

id_produkt               is_variant

1                             1

2                             1

3                             1

4                             0

5                             5

6                             5

co mi prinesie este jednu vyhodu (ale ta je teraz nepodstatna)

dosiel som k tomuto:

SELECT p1.id_produkt, p2.is_variant, COUNT(p2.is_variant)

FROM products AS p1, products AS p2',
      
WHERE p1.id_produkt IN (? , ?) AND p1.is_variant <> 0 AND p1.is_variant = p2.is_variant GROUP BY p2.is_variant

ak ma produkt is_variant = 0 , tak sa vo vysledku nezobrazi, co nevadi.. znamena ze ma jeden produkt (doplnim v PHP) ..

moze byt? alebo by to slo aj lepsie zo zachovanim danej struktury?

Nahlásit jako SPAM
IP: 188.123.100.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 2 hosté

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý