Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Join con 3 tabelle di cui una cross reference

    Buongiorno a tutti,
    ho provato a cercare nel forum ma noto che ultimamente i titoli dei post sono davvero poco chiari (mods, una volta queste cose si controllavano minuziosamente!!!) e non sono riuscito a trovare la soluzione al mio problema.

    Ad ogni modo, ho 3 tabelle:

    Prodotti: id, nome, immagine
    Ordini: id, [altri dati]
    xrf_ordini_prodotti: id_ordine, id_prodotto

    In buona sostanza un ordine può avere più prodotti e la relazione ordine-prodotto è memorizzata in xrf_ordini_prodotti usando gli id del prodotto e dell'ordine cui esso appartiene.

    Il problema: come si ottengono tutti i prodotti dell'ordine passato?

    Si devono usare le join ma io proprio non riesco a venirne a capo.

    Codice PHP:
    SELECT
       
    `prodotti`.`nome`,
       `
    prodotti`.`immagine`

    FROM
       
    `xrf_ordini_prodotti` AS `xrf`,
       `
    prodotti` AS `prodotti`,

    JOIN `prodottiON (`prodotti`.`id` = `xrf`.`id_prodotto`)

    WHERE `xrf`.`id_ordine` = 
    NOTA: al di là dei nomi che ho appena modificato mentre scrivo, il problema è la costruzione della JOIN: non riesco a raccapezzarmici o.O

    Una mano sarebbe davvero gradita

    Grazie mille!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,448
    Sezione sbagliata, si tratta di SQL, non PHP, chiedi ad un moderatore di spostarti in Database.

  3. #3
    Ecco, stavo ragionando male (chi sa che diavolo m'è preso stamattina).
    Le tabelle sono in realtà 2 perchè la terza, orders, non viene coinvolta in questa query.

    Il risultato è questo:

    codice:
    SELECT `product`.`nome`,`product`.`imgName`
    FROM `xrf_ordini_prodotti` AS `xrf`
    INNER JOIN `prodotti` AS `product` ON (`xrf`.`product_id` = `product`.`id`)
    WHERE `xrf`.`order_id` = INT
    PS
    @Alhazred: mea culpa
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.