Select produktu ve více kategoriích – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Select produktu ve více kategoriích – MySQL – Fórum – Programujte.comSelect produktu ve více kategoriích – MySQL – Fórum – Programujte.com

 

Kuboslav0
Newbie
5. 4. 2010   #1
-
0
-

Mám tabulku kde sú priradené jednotlivím produktom kategórie (jeden produkt je vo viacerých kategóriách)
Potrebujem poradiť ako zostaviť dotaz tak aby mi vyselectovalo produkt ktorý je v napr. 2 kategóriách súčasne.

id_kategoria | id_produkt

1 | 1
2 | 1
1 | 2
2 | 2
3 | 2


Diky moc

Nahlásit jako SPAM
IP: 213.29.146.–
</microsoft>
Curo
~ Šéfredaktor
+8
Hero
6. 4. 2010   #2
-
0
-

To Kuboslav : zkus to upřesnit, protože takto to vypadá, jako by ti stačilo

SELECT * FROM tabulka WHERE id_kategoria=1 OR id_kategoria=2

Nahlásit jako SPAM
IP: 88.102.243.–
Guitar Hero Master, Project führer & zdejší čaroděj.
Sleduj mě na twitteru – @lukaschury.
Kuboslav0
Newbie
6. 4. 2010   #3
-
0
-

To Curo : Keď tam dám OR tak mi vyberie aj tie ktoré niesú v oboch kategóriách zároveň.

Neviem ako to mám ešte upresniť..

Rozmýšlam či nebude efektnejšie to spraviť viacerými dotazmi a potom to nejak ošéfovať PHPkom ..

Nahlásit jako SPAM
IP: 213.29.146.–
</microsoft>
liborb
~ Redaktor
+18
Guru
6. 4. 2010   #4
-
0
-

A co takto?



SELECT id_produkt
FROM tabulka
GROUP BY id_produkt
HAVING count(id_kategoria) = 2;

Nahlásit jako SPAM
IP: 85.207.166.–
Kuboslav0
Newbie
6. 4. 2010   #5
-
0
-

To liborb :

Týmto vyselektujem produkty ktoré sú v 2 skupinách (v hociktorých), ale ja potrebujem určiť v ktorých ..

Nahlásit jako SPAM
IP: 213.29.146.–
</microsoft>
z_moravec
~ Redaktor
+3
Posthunter
6. 4. 2010   #6
-
0
-

Pokud chápu dobře co chceš, tak ti stačí to co psal Curo, jen místo OR použij AND.

Nahlásit jako SPAM
IP: 147.251.29.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
Curo
~ Šéfredaktor
+8
Hero
6. 4. 2010   #7
-
0
-

To Kuboslav : Jak píše Zdeněk, pokud chceš obě kategorie zároveň (z prvního příspěvku jsem to nevydedukoval), pak jen místo OR použij AND.

Nahlásit jako SPAM
IP: 88.102.243.–
Guitar Hero Master, Project führer & zdejší čaroděj.
Sleduj mě na twitteru – @lukaschury.
Kuboslav0
Newbie
6. 4. 2010   #8
-
0
-

z_moravec napsal:
Pokud chápu dobře co chceš, tak ti stačí to co psal Curo, jen místo OR použij AND.



Booleova algebra:
Ak použijem AND tak bude DB hľadať riadok ktorý obsahuje napr. id_kategoria=2 a zároveň id_kategoria=1 .. a samozrejme taký riadok neexistuje .. (riadok != produkt)

Myslel som, že mi niekto poradíte nejaké spájanie dotazov, poprípade ako to zlepiť cez PHP

Nahlásit jako SPAM
IP: 213.29.146.–
</microsoft>
liborb
~ Redaktor
+18
Guru
6. 4. 2010   #9
-
0
-

Tak to zkus ohnout přes left join:



SELECT A.id_produkt
FROM tabulka As A
LEFT JOIN tabulka As B
ON A.id_produkt=B.id_produkt
WHERE A.id_kategoria = 1 AND B.id_kategoria=2;

Nahlásit jako SPAM
IP: 85.207.166.–
Kuboslav0
Newbie
6. 4. 2010   #10
-
0
-

To liborb : Heuréka .. Super díky moc .. toto som potreboval ;-)

Nahlásit jako SPAM
IP: 213.29.146.–
</microsoft>
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, 1 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ý