Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 7 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.09.08
Prihlásený: 14.11.17
Príspevky: 225
Témy: 74
Bydlisko: Michalovce
Príspevok NapísalOffline : 19.09.2017 11:03

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


Offline

Správca fóra
Správca fóra
Problém s LEFT JOIN

Registrovaný: 08.08.09
Príspevky: 12449
Témy: 39
Príspevok NapísalOffline : 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
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.09.08
Prihlásený: 14.11.17
Príspevky: 225
Témy: 74
Bydlisko: Michalovce
Príspevok Napísal autor témyOffline : 19.09.2017 11:19

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.


Offline

Užívateľ
Užívateľ
Problém s LEFT JOIN

Registrovaný: 19.05.08
Prihlásený: 23.04.24
Príspevky: 664
Témy: 28
Bydlisko: Slovensko
Príspevok NapísalOffline : 19.09.2017 16:16

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. :)


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.09.08
Prihlásený: 14.11.17
Príspevky: 225
Témy: 74
Bydlisko: Michalovce
Príspevok Napísal autor témyOffline : 19.09.2017 17:30

Mám to na localhoste, čiže priamy link nepridám, ale pridal som screen tabuliek:
https://imgur.com/a/xAeZj
Takž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..


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 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!
Offline

Užívateľ
Užívateľ
Problém s LEFT JOIN

Registrovaný: 19.05.08
Prihlásený: 23.04.24
Príspevky: 664
Témy: 28
Bydlisko: Slovensko
Príspevok NapísalOffline : 19.09.2017 18:44

Nabuduce si tam schemu napis sam ako som ti pisal v poste vyssie. Ak sa schema nezhoduje s tvojou tak ju prepis a hod link.
s Joinom https://www.db-fiddle.com/f/3D7EQJVtHY8dRVvVvUv438/3
s vnorenym Selectom https://www.db-fiddle.com/f/3D7EQJVtHY8dRVvVvUv438/4


Odpovedať na tému [ Príspevkov: 7 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Problém z LEFT JOIN

v Databázy

2

738

27.06.2009 13:35

pWneD Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. problem pri LEFT OUTER JOIN

v Databázy

7

1077

24.07.2008 18:09

Triminka Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Problém s FULL OUTER JOIN

v Databázy

2

2026

18.06.2018 11:20

SuchSoft Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. P: Left 4 Dead Bundle (Left 4 Dead, Left 4 Dead 2)

v Predám

1

501

16.10.2012 10:03

Only Human Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Left 4 Dead 2 Problém

v Počítačové hry

3

533

21.05.2012 22:54

CHhAj7eGO Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Problem s obtekanim (float:left)

v HTML, XHTML, XML, CSS

2

451

10.04.2015 21:57

Jimi Zobrazenie posledných príspevkov

Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie. I/K: PC Hry - Left 4 Dead, Left 4 Dead 2

v Kúpim

13

734

05.10.2012 12:39

Demik Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Problém s obtekaním obrázka float:left

v HTML, XHTML, XML, CSS

2

686

12.02.2011 12:05

AReYco Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. MySQL join...

v Databázy

7

673

11.07.2011 18:39

coldak Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. MySQL - SELECT JOIN

v Databázy

9

799

21.07.2017 18:19

lukas15 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. join 3 tables mysql

v Databázy

9

772

05.03.2010 17:32

rooobertek Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Vyber nevyhovujucich zaznamov (JOIN)

v Databázy

1

541

26.01.2010 22:02

stenley Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. php + mysql : dvojity join

v Databázy

2

673

15.07.2011 20:28

jaji Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Starcraft - Unable to join network!!! Help

v Počítačové hry

5

821

05.08.2009 22:07

pj Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. SQL join 1 riadok (viac zaznamov)

v Databázy

4

795

14.06.2009 23:20

marek26 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. JOIN tabuliek ale iba 1 riadok z pravej

v Databázy

1

391

04.08.2013 23:00

Ďuri Zobrazenie posledných príspevkov


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

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra