» »

MySQL podatki iz več tabel

MySQL podatki iz več tabel

filips ::

Imam tabeli pages in posts. Podatke bi rad dobil tako, da bi v isti poizvedbi dobil podatke iz obeh tabel. Poskusil sem z LEFT, RIGHT, INNER in CROSS JOIN, pa ne dela.

posts:
postTITLE  | postURL
-------------------------
postTitle1 | postUrl1
postTitle2 | postUrl2
postTitle3 | postUrl3


pags:
pageTITLE  | pageURL
-------------------------
pageTitle1 | pageUrl1
pageTitle2 | pageUrl2
pageTitle3 | pageUrl3


poizvedba:
postTITLE  | postURL  | pageTITLE  | pageURL
------------------------------------------------
postTitle1 | postUrl1 | NULL       | NULL
postTitle2 | postUrl2 | NULL       | NULL
postTitle3 | postUrl3 | NULL       | NULL
NULL       | NULL     | pageTitle1 | pageUrl1
NULL       | NULL     | pageTitle2 | pageUrl2
NULL       | NULL     | pageTitle3 | pageUrl3

ales85 ::

Če bi rad dobil podatke tako, da imaš postTITLE in pageTITLE v enem stolcpu ter postURL in pageURL v drugem, potem uporabi UNION.

filips ::

Ali lahko napišeš celotno poizvedbo?

smacker ::

JOIN - združi dva zapisa v eno vrstico.
Kar najbrž hočeš ti, je združit zapise v iste stolpce, torej rabiš UNION.

(SELECT postTITLE AS Title, postURL AS URL FROM posts) UNION (SELECT pageTITLE AS Title, pageURL as URL FROM pages)

filips ::

Nisem mislil tako. Rad bi, da vi imel posebej polja pageTITLE, pageURL, postTITLE, postURL. Kjer pa vrednosti nebi bilo pa bi napisalo NULL.
postTITLE  | postURL  | pageTITLE  | pageURL
------------------------------------------------
postTitle1 | postUrl1 | NULL       | NULL
postTitle2 | postUrl2 | NULL       | NULL
postTitle3 | postUrl3 | NULL       | NULL
NULL       | NULL     | pageTitle1 | pageUrl1
NULL       | NULL     | pageTitle2 | pageUrl2
NULL       | NULL     | pageTitle3 | pageUrl3


Potem pa bi s PHP preveril če imata polja pageTITLE in pageURL vsebino in če bi imela, bi bila to stran, če pa bi imela postTITLE in postURL, pa prispevek (vendar PHP kodo že imam in me zanima samo MySQL poizvedba)

Zgodovina sprememb…

  • spremenil: filips ()

smacker ::

To je mimo vsake logike. Naredi dve poizvedbi, z eno izberi strani z drugo pa prispevke, pa ne boš rabil nič preverjat.
Če pa že hočeš delat bedarije, pa:
(SELECT postTITLE, postURL, NULL AS pageTITLE, NULL AS pageURL FROM posts) UNION (SELECT NULL AS postTITLE, NULL AS postURL, pageTITLE, pageURL FROM pages)

Lahko pa tako:
(SELECT postTITLE AS Title, postURL AS URL, 'post' AS type FROM posts) UNION (SELECT pageTITLE AS Title, pageURL as URL, 'page' AS type FROM pages)


Vrne sledečo poizvedbo:
TITLE      | URL      | type
------------------------------------------------
postTitle1 | postUrl1 | post 
postTitle2 | postUrl2 | post 
postTitle3 | postUrl3 | post 
pageTitle1 | pageUrl1 | page
pageTitle2 | pageUrl2 | page
pageTitle3 | pageUrl3 | page

Zgodovina sprememb…

  • spremenil: smacker ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

PHP POST težava

Oddelek: Programiranje
121416 (1282) DeeJay
»

[android] vstavljanje slike

Oddelek: Programiranje
71145 (1042) messi
»

php echo problem

Oddelek: Izdelava spletišč
71010 (593) chrush
»

[php]$_POST iz šumnikov v nešumnike

Oddelek: Izdelava spletišč
71479 (1391) Gost
»

php skripta za registracijo uporabnikov

Oddelek: Izdelava spletišč
162000 (1581) skorpio

Več podobnih tem