|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Bannato
Iscritto dal: Nov 2005
Città: Napoli
Messaggi: 87
|
[PHP+mysql] Problema con inner join complessa
Salve a tutti,
ho un enorme problema con una JOIN abbastanza complessa. Ho le seguenti tabelle: galleries -> gallery_id, gallery_title, sponsor_id, site_id site -> site_id, site_name, site_url sponsors -> sponsor_id, sponsor_name, sponsor_url links -> link_id, link_url, link_name, sponsor_id, site_id templates -> template_id, template_desc, sponsor_id, site_id Tramite browser viene passato un URL che successivamente viene splittato in piu' valori e sitemato in variabili: Codice:
http://www.url.com/01/sponsorname/02/sitename/2255/01/01/questa-galleria-fa-schifo 01 -> id sponsor -> $sponsorid sponsorname -> nome sponsor -> $sponsorname 02 -> id sito -> $siteid sitename -> nome sito ->$sitename 2255 -> id galleria -> $galleryid 01 -> id template -> $templateid 01 -> link id -> $linkid Ho la necessita' di eseuire un controllo sui dati inseriti confrontandoli con i dati presenti all'interno del database tenedendo presente che: - una galleria puo' avere link differenti passati tramite url ma questo link e' valido solo se sponsor_id e site_id della tabella links corrispondono a sponsor_id e site_id della tabella galleries - una galleria puo' avere template differenti passati tramite url ma questo template e' valido se sponsor_id e site_id della tabella template corrispondono con site_id e sponsor_id della tabella galleris Io ho abbozzato una query mostruoso ed alquanto inutile credo: SELECT galleries.gallery_id, galleries.gallery_title, galleries.sponsor_id, galleries.site_id, sponsors.sponsor_id, sponsors.sponsor_name, sites.site_id, sites.site_name, links.link_id, links.link_url, links.sponsor_id, links.site_id, templates.template_id, templates.sponsor_id, templates.site_id FROM galleries INNER JOIN sponsors ON galleries.sponsor_id = sponsors.sponsor_id AND sponsors.sponsor_id = $sponsor_id AND sponsor.sponsor INNER JOIN sites ON galleries.site_id = sites.site_id INNER JOIN links ON galleries.site_id = links.site_id AND galleries.sponsor_id = links.site_id AND links.link_id = $link_id INNER JOIN templates ON galleries.site_id = templates.site_id AND galleries.sponsor_id = templates.sponsor_id AND templates.template_id = $template_id WHERE galleries.gallery_id = $gallery_id AND galleries.gallery_title = '".strtolower($gallery_title_full)."'"; Grazie. Cordiali saluti. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 517
|
Codice:
SELECT a.gallery_id, a.gallery_title, ... FROM galleries AS a, sponsors as b, ... WHERE a.sponsor_id = b.sponsor_id AND b.sponsor_id = $sponsor AND ...
__________________
Il sole è giallo |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:45.