SQL join

Programovacie jazyky, rady, poradňa...
ravanelli
Light Expert
Light Expert
Príspevky: 78
Registrovaný: 04 nov 2006, 13:39

SQL join

Príspevok od používateľa ravanelli »

Zdravim,
potreboval by som pls. pomoc s jednym sql dopytom..problem je nasledovny:
v databaze je tabulka itemov a tabulka relacii medzi dvojicami tychto itemov

table items:
- id_item (int)
...

table rel_items:
- id_rel (int)
- id_item1 (int)
- id_item2 (int)
- rel_value (int)
...

id_item1 a id_idem2 su referencie na id_item z tabulky items pricom rel_value vyjadruje hodnotu 0-100 = relacia medzi touto dvojicou itemov.
V aplikacii je mozne vybrat lubovolny item (id_chosen_item) a z databazy by som rad vytiahol vsetky relacie k tomuto vybranemu itemu tak, ze ak existuje relacia medzi vybranym itemom (id_chosen_item) a dalsim itemom v databaze tak v tabulke rel_items existuje zaznam pricom vybrany item je ulozeny bud ako id_item1 alebo id_item2.

Momentalne data viem vytiahnut pomocou dvoch dopytov, nakolko id_chosen_item moze byt medzi relaciami ulozeny bud ako id_item1 alebo id_item2

"SELECT * FROM `rel_items` `rel_items` RIGHT JOIN `items` `items` ON `items`.`id_item`=`rel_items`.`id_item1` WHERE `rel_items`.`id_item2`='".$id_chosen_item."'";

"SELECT * FROM `rel_items` `rel_items` RIGHT JOIN `items` `items` ON `items`.`id_item`=`rel_items`.`id_item2` WHERE `rel_items`.`id_item1`='".$id_chosen_item."'";

problem je v tom ze by som rad vytiahol vsetky potrebne data jednym SQL dopytom, viete mi prosim niekto s tymto pomoct?
Baseilos
Light Expert
Light Expert
Príspevky: 57
Registrovaný: 01 máj 2011, 2:15

Re: SQL join

Príspevok od používateľa Baseilos »

Ak spravne chapem tak by stacilo pouzit UNION.
ravanelli
Light Expert
Light Expert
Príspevky: 78
Registrovaný: 04 nov 2006, 13:39

Re: SQL join

Príspevok od používateľa ravanelli »

ake jednoduche :) vdaka, funguje mi to...vobec mi to nenapadlo, stale som uvazoval ako spravit nejaky multijoin
Napísať odpoveď