| | |
| Stránka: 1 z 1
| [ Príspevkov: 7 ] | |
Autor | Správa |
---|
Registrovaný: 21.09.08 Prihlásený: 14.11.17 Príspevky: 225 Témy: 74 Bydlisko: Michalovce |
Nazdárek. Potreboval by som poradiť. Mám dve tabuľky. V tabuľke posts mám uložené príspevky (post_id, autor_id, text, typ, datum atd) a v tabuľke share sú uložený užívatelia ktorí zdieľajú príspevky (post_id, autor_id, zdiela_id, datum.) Povedzme, že v tabuľke posts má užívateľ 14 príspevkov a zdieľa ďalšie 3 príspevky - teda 3x v tabuľke share. Čiže, malo by mi to zobraziť 17 príspevkov. Problém je, že mi to zobrazuje príspevkov 20. Vyberá mi aj tie príspevky zo share, ktorých som autorom a nie len ktoré zdieľam. Ak použijem UNION, tak je všetko OK, ale tomu sa chcem vyhnúť, chcel by som tabuľky prepojiť cez JOIN. Lenže práve pri tomto je problém: Kód: $selPost=$linkDB->query("SELECT p.*, s.* FROM posts p LEFT JOIN share s ON s.post_id=p.post_id WHERE p.autor_id='21'"); Neviete mi poradiť ako to upraviť aby mi to vyhodilo reálne len tie príspevky ktoré som uverejnil a ktoré zdieľam ale nie som autorom? Ďakujem
|
|
Registrovaný: 08.08.09 Príspevky: 12449 Témy: 39 | Napísal killer: 19.09.2017 11:10 | |
|
Nerozumiem zadaniu. Ty máš v share príspevky duplicitne? Inak hrozné názvy stlpcov a tabuliek, čo je share.zdiela_id? prečo kombinuješ anglické a slovenské názvy? 'text' je rezervované, budeš mať niekde problém v budúcnosti.
Teda ak používateľ author_id=21 zdieľa príspevok z tabuľky posts, ty ho nedáš do tabuľky posts ale do share???
_________________ always is always wrong |
|
Registrovaný: 21.09.08 Prihlásený: 14.11.17 Príspevky: 225 Témy: 74 Bydlisko: Michalovce |
killer, názvy stĺpcov nerieš. Takéto názvy stĺpcov som dal len tu v príspevku pre lepšie pochopenie ;-) A nie. V tabuľke share je len id príspevku, id autora príspevku a id užívateľa ktorý zdieľa príspevok no a dátum zdieľania. To je všetko. V tabuľke posts sú samotné príspevky. Tzn. id príspevku, id autora, text, obrázky, odkazy atd. Čiže žiadne 2 tabuľky s príspevkami.
|
|
Registrovaný: 19.05.08 Prihlásený: 23.04.24 Príspevky: 664 Témy: 28 Bydlisko: Slovensko |
popis tohto stylu je velmi zle pochopitelny, tebe sa to zda jasne niekomu externe vsak nie. Nahod sample tabulky s datami na sql fiddle alebo podobnu sluzbu a tam ti hodime aj query ako to ma byt.
|
|
Registrovaný: 21.09.08 Prihlásený: 14.11.17 Príspevky: 225 Témy: 74 Bydlisko: Michalovce |
Mám to na localhoste, čiže priamy link nepridám, ale pridal som screen tabuliek: https://imgur.com/a/xAeZjTakže ešte raz v jednoduchosti. Povedzme že som užívateľ s UID 19 A chcel by som zobraziť všetky moje príspevky (tabuľka posts - uid 19) a príspevky ktoré zdieľam (tabuľka posts_share - suid 19). Ako by teda mal vyzerať ten SELECT? Najoptimálnejšie bez použitia UNION..
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 19.09.2017 18:40 | |
|
A prečo join a nie union? Nejaký racionálny dôvod? Pretože ty potrebuješ urobiť union, nie join.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 19.05.08 Prihlásený: 23.04.24 Príspevky: 664 Témy: 28 Bydlisko: Slovensko | |
| Stránka: 1 z 1
| [ Príspevkov: 7 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|