query duplikáció megszüntetése...
Sziasztok.
Listázási problémám van. A korábban segítséggel megoldott sql parancs használatakor kilistázza ugyanazt a felhasználót.
| a | b |
_____________
| aid | bid |
| nev | ido |
| stb | iks |
| stx | fel |
a | 1 | okoska | valami | valamix |
a | 2 | petike | valami | valamix |
b | 1 | 2012-12-15 | valami | 1 |
b | 2 | 2012-12-15 | valami | 2 |
b | 1 | 2012-12-12 | valami | 2 |
b | 1 | 2012-12-11 | valami | 2 |
sbt.
Erre használnám ezt a parancsot:Erre a lekérdezésre kapok 3 db nevet, amiből 2 ugyanaz.
1. okoska
2. okoska
3. petike
Ezt szeretném megoldani.
Köszönöm a segítséget!
Üdv:T
■ Listázási problémám van. A korábban segítséggel megoldott sql parancs használatakor kilistázza ugyanazt a felhasználót.
| a | b |
_____________
| aid | bid |
| nev | ido |
| stb | iks |
| stx | fel |
a | 1 | okoska | valami | valamix |
a | 2 | petike | valami | valamix |
b | 1 | 2012-12-15 | valami | 1 |
b | 2 | 2012-12-15 | valami | 2 |
b | 1 | 2012-12-12 | valami | 2 |
b | 1 | 2012-12-11 | valami | 2 |
sbt.
Erre használnám ezt a parancsot:
} if (ISSET($_GET['feltel'])){
$data = mysql_query("SELECT * FROM a INNER JOIN b ON a.aid = b.bid WHERE fel = 2 ") or die(mysql_error());
1. okoska
2. okoska
3. petike
Ezt szeretném megoldani.
Köszönöm a segítséget!
Üdv:T
Miért baj?
a
tábládban két sor van, amihezINNER JOIN
-nal rakod hozzá ab
táblát, ergo legfeljebb annyi sorod lehet, amennyi aza
táblában van.Egyébként a
GROUP BY
használatával lehet több sort "egyesíteni", azaz aGROUP BY
-nak megadott oszlopok alapján kiválaszt egy sort, amiben a megadott mezők különböznek a többitől, de ez hozhat fura eredményeket is, mivel egyes eredménybeli sorok elvesznek.Csak mert..
Ezért nem jó, ha a listában többször szerepel ugyanaz az ember, mert több ezer sorosra duzzad a lista...
Lehet, hogy a szemléltetés nem tökéletes, de a lényeg a problémámban ez.
(a) tábla névsor egy sor -egy ember
(b) tábla szolgáltatások egy ember - több sor (dátum szerint)
Így, ahány rekorddal rendelkezik az egyén, annyiszor szerepel a lekérdezésben.
Azt szeretném, ha az adott személyt csak egyszer jelenítené meg, tehát ha a (b) táblában az adott feltételnek megfelel és létezik, akkor keresse meg az id szerint az (a) táblából, de ne duplikálja.
Ezt meg lehet oldani, vagy vakvágány?
Nem jó
INNER JOIN
-nak kell megadni a megfelelő feltételt. Ha a lekérdezésben a tevékenységekhez csatolod hozzá a személyeket, akkor pedig használjGROUP BY
-t a személyre, de ekkor pedig ne*
-ot használj a kiválasztandó oszlopokhoz, mert az félrevezető lesz az eredmények tekintetében.:)
Hihetetlen :)
ORDER BY csere GROUP BY-ra és máris csak egyszer szerepel a tag a listán.
Köszi mégegyszer!
Üdv:T