Pagina 3 di 3 primaprima 1 2 3
Visualizzazione dei risultati da 21 a 27 su 27

Discussione: Query select

  1. #21
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    117
    Con quella query ottengo errore.
    Scusa che errore?
    Se non lo indichi come ti si può aiutare?

  2. #22
    Utente di HTML.it
    Registrato dal
    Dec 2015
    Messaggi
    21
    eseguo la query su prestashop. mi dice semplicemente "error"

  3. #23
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    117
    Allora...
    1) se hai la possibilità esegui la query direttamente sul database e posta l'errore;
    2) ti hanno già detto che non puoi usare UNION perché le query hanno colonne diverse (ma in ogni caso non credo che unire le query porti al risultato che ti aspetti);
    3) Se hai intenzione di relazionare i dati della prima query a quelli della seconda hai solo due possibilità:
    a) Esegui due query separatamente e relazioni i dati ottenuti tramite codice;
    b) Esegui un'unica query che ti dia i dati già relazionati usando JOIN su tutte le tabelle interessate dalla SELECT.
    4) Se (per assurdo) non ti interessa relazionare tra loro i dati delle due query allora semplicemente eseguile separatamente (anche con unico accesso al DB: basta separarle con ";")

  4. #24
    Utente di HTML.it
    Registrato dal
    Dec 2015
    Messaggi
    21
    Eseguendo la query in phpmyadmin non dà errore ma ottengo un unico risultato con il nome di un solo prodotto e le quantità sommate

  5. #25
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    117
    Ok, se ottieni una sola riga è per via del COUNT.

    Quindi, se vuoi mantenere la struttura così com'è devi aggiungere un "GROUP BY" relativo al campo che ti interessa.
    Ad esempio se vuoi mostrare tutti i prodotti puoi usare:

    codice:
    SELECT P.reference as Code, PL.`name` as Product_Name, COUNT(OD.id_order) as ordered_qty, o.`id_order` as 'order id' ,ad.`city` as 'Delivery_Address'
    FROM ps_product P
    LEFT JOIN ps_product_lang PL ON P.id_product = PL.id_product
    LEFT JOIN ps_order_detail OD ON P.id_product = OD.product_id
    LEFT JOIN ps_orders O ON O.id_order = OD.id_order
    join `ps_customer` cs on o.`id_customer`=cs.`id_customer`
    join `ps_address` ad on o.`id_address_delivery`=ad.`id_address`
    WHERE O.valid = 1
    GROUP BY Product_Name 
    order by ad.city
    Se invece vuoi mantenere tutte le righe ed aggiungere il COUNT in ognuna dovrai sostituire "COUNT(OD.id_order)" con una subquery.

  6. #26
    Utente di HTML.it
    Registrato dal
    Dec 2015
    Messaggi
    21
    ho eseguito la query e funziona per metà perchè non mi suddivide ke quantità acquistate cioè:
    un prodotto può essere stato acquistato 2 volte dall'america e 3 volte dal giappone mentre con questa query mi dice 5 volte dal giappone

  7. #27
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    117
    Puoi provare ad aggiungere un ulteriore raggruppamento (o ti rimane sempre l'alternativa della subquery)

    Prova
    codice:
    GROUP BY Product_Name, 'Delivery_Address'

Tag per questa discussione

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.