Autor Zpráva
mbohovic
Profil *
Dobry den,

nevedel som najst kategoriu sql, tak som to dal do tejto sekcii snad to navadi.
Moderátor Chamurappi: Mně se jí najít povedlo, přesouvám do databází.

chcel by som sa opytat, je mozne spravit v mysql select tak, aby mi vybral iba jeden krat z tabulky udaj, ktory sa v tabulke opakuje, a tiez aby bol zachovany limit pre dany select.
napr.
tabulka
id | meno | kategoria | popis | status
1 | prvy | 1 | popis1 | 1
2 | druhy | 2 | popis2 | 1
3 | prvy | 3 | popis3 | 1
4 | treti | 2 | popis4 | 1
5 | prvy | 1 | popis5 | 1
6 | stvrty | 2 | popis6 | 1
7 | prvy | 1 | popis7 | 1

teda ak mam v tabulke tri udaje s rovnakym menom prvy pri ktorych je kategoria 1 by mal byt v selecte iba raz a nie tri krat, pricom prvy ktory je v inej kategorii by v selecte uz bol
je to zrozumytelne?

ale dolezite je aby sa mi limit nezmenil,

nasiel som nieco ako DISTINCT ale neviem ci to je pre tento pripad to spravne riesenie pretoze lenze je to trochu komplikovanejsie, ide o dve tabulky , pricom v jednej sa nachadza meno a v druhej sa nachadza kategoria,

chcem aby mi vybralo iba jeden riadok pre viac rovnakych hodnot pri mene aj kategorii,

Vopred dakujem

Moderátor Chamurappi: Tvůj projev je špatně srozumitelný, piš prosím s diakritikou.
TomášK
Profil
DISTINCT nebo GROUP BY bude to, co hledáš. Hráč prvy má tři záznamy, u každého různý popis, do výsledku se dostane jeno jeden. Jaký popis a status by se měl vybrat?

Pokud tě zajímají jen sloupce meno a kategorie, pak zkus
SELECT DISTINCT meno, kategoria FROM ...
mbohovic
Profil *
tabulky su
1/ produkty
id | kategoria | cena | velkost | datum | status
1| 1 | 5.00 | XL | 123456789 | 1
2| 3 | 2.00 | XL | 123456789 | 1
3| 1 | 5.00 | XL | 123456789 | 1
4| 5 | 1.00 | XL | 123456789 | 0
5| 6 | 3.00 | XL | 123456789 | 1
6| 1 | 9.00 | XL | 123456789 | 1
7| 1 | 54.00 | XL | 123456789 | 1
8| 2 | 25.00 | XL | 123456789 | 1
9| 1 | 6.00 | XL | 123456789 | 1

2./ prod_desc
id | prod_id | meno | popis
11| 1 | 5.00 | prvy| 123456789 | 1
22| 2 | 2.00 | prvy| 123456789 | 1
33| 3 | 5.00 | treti| 123456789 | 1
44| 4 | 1.00 | prvy| 123456789 | 0
55| 5 | 3.00 | druhy| 123456789 | 1
66| 6 | 9.00 | prvy| 123456789 | 1
77| 7 | 54.00 | stvrty| 123456789 | 1
88| 8 | 25.00 | prvy| 123456789 | 1
99| 9 | 6.00 | prvy| 123456789 | 1

kde prod_id je id produktu z tabulky produkty
problem je v tom ze ma zaujima vsetko v oboch tabulkach ale potrebujem vybrat iba raz tie riadky, kde je kategoria produktu a meno produktu rovnake pre dane id produktu.
result pre toto by bol

riadok 1, - produkty.id 1, prod_desc.id 11
riadok 2, - produkty.id 2, prod_desc.id 22
riadok 3, - produkty.id 3, prod_desc.id 33
riadok 4, - produkty.id 4, prod_desc.id 44
riadok 5, - produkty.id 5, prod_desc.id 55
riadok 6, - produkty.id 7, prod_desc.id 77
riadok 7, - produkty.id 8, prod_desc.id 88

je to zrozumytelne?
Taps
Profil
mbohovic:
zkus to pomocí join
$sql=mysql_query(" select * from produkty  p left join prod_desc d on p.id=d.prod_id");

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: