UNIRE PIU' TABELLE

ciao a tutti

sono alle prese, per la prima volta in assoluto, con un problema di una select

Cerco di spiegarmi al meglio...

Ho:

TABELLE  >> CAMPI

campaigns >> CampaignID

campaigns_maillists >> RelCampaignID ,RelMailListID

campaigns_content >> RelCampaignID

campaigns_attachments >> RelCampaignID

maillists >> MailListID

Per farvi capire le connessioni tra le varie tabelle vi dico che:

CampaignID = RelCampaignID

MailListID = RelMailListID

Devo fare la classica scheda tecnica di un prodotto con dati

presi un po' da tutte le tabelle.

Non so come fare visto che le prime 4 tabelle hanno un campo in comune (CampaignID o RelCampaignID) ma l'ultima (maillists) e' connessa solo con la seconda campaigns_maillists).

Fino a 2 tabelle sono riuscito ad unirle con INNER JOIN ma avendone 5 nn so proprio come fare...!

A mio parere e' il problema del secolo non avendo molta dimestichezza con l'argomento...

Che ne pensate?

grazie mille ciao

inviato 10 anni fa
eppyy
X 0 X

Basta fare così:

SELECT
      *
   FROM
      campaigns, campaigns_maillists, campaigns_content, campaigns_attachments, maillists
   WHERE
      campaigns_maillists.RelCampaignID  = campaigns.CampaignID AND
      campaigns_content.RelCampaignID = campaigns.CampaignID AND
      campaigns_attachments.RelCampaignID = campaigns.CampaignID AND
      maillists.MailListID = campaigns_maillists.RelMailListID

Si può procedere in maniere simile impiegando una JOIN, magari LEFT JOIN se vanno bene anche valori NULL per i risultati delle "tabelle dipendenti"

SELECT
      *
   FROM
      campaigns
      LEFT JOIN campaigns_maillists
         ON campaigns_maillists.RelCampaignID  = campaigns.CampaignID
      LEFT JOIN campaigns_content
         ON campaigns_content.RelCampaignID = campaigns.CampaignID
      LEFT JOIN campaigns_attachments
         ON campaigns_attachments.RelCampaignID = campaigns.CampaignID
      LEFT JOIN maillists
         ON maillists.MailListID = campaigns_maillists.RelMailListID

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Gianni! non so come ringraziarti...

GRAZIE  O0

risposto 10 anni fa
eppyy
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda