Autor | Zpráva | ||
---|---|---|---|
david80 Profil |
#1 · Zasláno: 1. 4. 2011, 22:37:10
Ahoj, prosím vás o radu, mám v db tabulku "pratele" a tabulku "zpravy",
V tabulce pratele mám sloupec "uzivatel" a "pritel" a v tabulce zpravy je "uzivatel", "datum" a "text" Myslel jsem si že to bude hračka, ale už se s tím trápím 3 dny, vymysle jsem to takhle, nejdřív si SELECTem vypíšu všechny mé přátele a pak ty přátele zapíšu proměnou do dalšího SELECT jako WHERE ale nemůžu přijít na to, jak to takhle udělat hlavně proto, že počet přátel se může měnit a pak taky potřebuju vypsat i zprávy, co jsem napsal já a ještě je seřadit podle datumu. |
||
Bertram Profil |
#2 · Zasláno: 1. 4. 2011, 22:45:55
Asi jsem natvrdlí, ale co to vlastně chcete v tom dotazu vrátit z databáze?
|
||
Joker Profil |
#3 · Zasláno: 1. 4. 2011, 22:47:53 · Upravil/a: Joker
SELECT sloupce FROM uzivatel u JOIN pritel p ON p.uzivatel=u.id JOIN zpravy z ON z.odesilatel=p.pritel |
||
david80 Profil |
#4 · Zasláno: 2. 4. 2011, 00:37:33
Bertram:
Omlouvám se, napsal jsem to do nadpisu, ale to textu už ne. Potřebuju vypsat zprávy jen od lidi, které mám v přátelích. Joker: Ať to zkouším jak chci, tak mám pocit, že to není přesně to, co by mi fungovalo. Mám 2 tabulky, jednu pro zprávy a jednu pro přátelství a pak ještě tabulku pro registraci uživatelů, ale ta už není důležitá, protože po přihlášení se uloží session se jménem a ID, takže jen potřebuju ke známému jménu uživatele přiřadit přátele a k těm přátelům pak zprávy co odeslaly a ty vypsat. Zprávy mám v jiné tabulce, kde jsou sloupce - id,datum, odesilatel, text Tabulka kde jsou přátelé má zas sloupce - id,uzivatel,pritel V tom co jste mi napsal jsem nenašel tabulku "pratele", tabulku "zpravy" jo. |
||
Bertram Profil |
#5 · Zasláno: 2. 4. 2011, 07:44:47 · Upravil/a: Bertram
Já to přehlédl, slepoň :-)
Možná něco z tohoto, ale chce to vědět i něco o charakteru těch tabulek. SELECT pritel,datum,text FROM pratele,zpravy WHERE zpravy.uzivatel = pratele.uzivatel AND pratele.pritel = bool ORDER BY datum"; SELECT pritel,datum,text FROM pratele,zpravy WHERE pratele.uzivatel = já AND zpravy.uzivatel = pratele.uzivatel ORDER BY datum"; |
||
Joker Profil |
#6 · Zasláno: 2. 4. 2011, 09:52:52
david80:
„V tom co jste mi napsal jsem nenašel tabulku "pratele", tabulku "zpravy" jo.“ je tam pritel, jinak samozřejmě já neznám konkrétní strukturu a názvy sloupců, takže je potřeba upravit podle situace. Ale se známým ID uživatele to je ještě jednodušší- napíšu tabulky textově, šedé části je potřeba upravit podle situace: SELECT sloupce FROM tabulka přátel p JOIN tabulka zpráv z ON z.id_odesilatele = p.id WHERE p.uzivatel = ID uživatele Bertram: Lepší je udělat rovnou spojení tabulek podle podmínky (JOIN ON), než udělat kartézský součin (všechny kombinace) a z něj pak ty řádky vybírat. |
||
david80 Profil |
#7 · Zasláno: 2. 4. 2011, 11:07:59
Bertram:
Díky, super, ten druhý select jsem si poupravil aby odpovídal charakteru tabulek a už funguje tak jak jsem si přál, díky :-) Jsem nevěděl, že se to dá takhle hezky spojovat, tak jsem zase o něco chytřejší :-) |
||
david80 Profil |
#8 · Zasláno: 2. 4. 2011, 11:11:43
Joker:
Ještě to skusím udělat vaším způsobem. Taky díky za ochotu, moc jste mi oba pomohli :-) |
||
Časová prodleva: 13 let
|
0