Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2016
    Messaggi
    10

    Problema con Join su più tabelle MYSQL ERROR 1054 (42S22): Unknown column

    Salve a tutti ho il seguente codice


    drop database if exists elettro;
    create database if not exists elettro;
    use elettro;


    create table if not exists prodotti (
    Codice int primary key,
    Categoria varchar (20),
    Sottocategoria varchar (20),
    Descrizione varchar (50),
    Marca varchar (20),
    Prezzo int,
    Disponibilita varchar (2)

    );


    create table if not exists Clienti (
    Codice int primary key,
    Nome varchar (20),
    Eta int

    );


    create table if not exists Storico (
    Data_acquisto date,
    quantita int,
    Codice_CL int,
    Codice_Pr int,
    foreign key (Codice_CL) references Clienti (Codice),
    foreign key (Codice_Pr) references prodotti (Codice)

    );


    insert into prodotti values (10000,'Cat1','Sott1','Descrizione1','Marca1', 150, 'SI');
    insert into prodotti values (20000,'Cat2','Sott2','Descrizione2','Marca2', 350, 'SI');
    insert into prodotti values (30000,'Cat3','Sott3','Descrizione3','Marca3', 450, 'NO');
    insert into prodotti values (40000,'Cat4','Sott4','Descrizione4','Marca4', 150, 'SI');


    insert into Clienti values (101,'Nome1',18);
    insert into Clienti values (102,'Nome2',20);
    insert into Clienti values (103,'Nome3',38);
    insert into Clienti values (104,'Nome4',19);
    insert into Clienti values (105,'Nome5',14);

    insert into storico values ('2016-01-03', 3, 101, 10000);
    insert into storico values ('2016-02-03', 2, 102, 20000);
    insert into storico values ('2016-04-03', 4, 103, 30000);
    insert into storico values ('2016-01-03', 1, 104, 40000);
    insert into storico values ('2016-01-03', 6, 105, 10000);

    select p.Marca
    from prodotti as p
    where p.Prezzo<=450 and p.Prezzo>=150 and p.Disponibilita='SI';

    /* Visualizzare nome e punti di ogni acquirente (1 punto per ogni 10€ di spesa) */

    select c.Nome, ((s.quantita*p.Prezzo)/10) as punti
    from Storico as s ,prodotti as p, Clienti as c
    where s.Codice_Pr=p.Codice and s.Codice_CL=c.Codice;


    select c.Nome, ((s.quantita*p.Prezzo)/10) as punti
    from Storico as s ,prodotti as p, Clienti as c
    join Storico as sr on sr.Codice_CL=c.Codice
    Join Storico as st on st.Codice_Pr=p.Codice;





    ora come potete vedere nella penultima query ho usato la selezione multipla e funziona alla perfezione, nell'ultima ho usato due join e mi si presenta il seguente codice d'errore "ERROR 1054 (42S22): Unknown column 'p.Codice' in 'on clause"

    Riesco ad usare il join solo se devo fare una sola relazione, se invece devo fare più relazioni fra più tabelle come in questo caso non so come fare perchè si presenta questo errore



  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    la tua query non ha senso.

    select c.Nome, ((s.quantita*p.Prezzo)/10) as punti
    from Storico as s
    join Clienti as c on s.Codice_CL=c.Codice
    Join Prodotti as p on s.Codice_Pr=p.Codice;
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2016
    Messaggi
    10
    Troppi alias? cos'è che non va?

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Hai provato la query che ho postato ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

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 © 2025 vBulletin Solutions, Inc. All rights reserved.