Hi again,
since I'm not someone who gives up easily, I have restyled that old code
(actually is from an example back of my teacher into 2002, I saw that
she changed a bit her way to code this stuff), I restyled the code just
to be sure it isn't some parsing issue or whatever.
http://pastebin.com/f50d77dcf
On that database, this query works:
select CodCliente, Cognome, Nome from Ordini NATURAL JOIN Clienti where
Data='2002-09-05';
whereas this one does not:
select *
from rappresentanti NATURAL JOIN clienti;
I pasted the database in there.
Deviad ha scritto:
> Hello,
> I have been training for a test on Database Design and MySQL.
> The following is inside a file we have to run before starting to code
> what the excercises require us to.
> Call the file as you wish and run it if it helps to understand the
> reason behind my problem.
> ---------------------------
> DROP DATABASE IF EXISTS premiere;
>
> CREATE DATABASE premiere;
>
> USE premiere;
>
> create table if not exists Articoli(
> NroArt char(4) primary key,
> descrizione char(20),
> giacenza int,
> categoria char (2),
> PrezzoUnitario decimal(8,2)
> ) TYPE=INNODB;
>
> create table if not exists Rappresentanti(
> CodRappr char(2) primary key,
> cognome char(10),
> nome char(8),
> via char (15),
> citta char(15),
> prov char(2),
> cap char (5),
> TotProvv decimal(8,2),
> PerProvv decimal(8,2)
> ) TYPE=INNODB;
>
>
> create table if not exists clienti(
> CodCliente char(3) primary key,
> cognome char(10),
> nome char(8),
> via char (15),
> citta char(15),
> prov char(2),
> cap char (5),
> saldo decimal(8,2),
> fido decimal(8,2),
> CodRappr char(2) not null references
> Rappresentanti(CodRappr)
> ) TYPE=INNODB;
>
>
> create table if not exists Ordini(NroOrdine char(6) primary key,
> data date,
> CodCliente char(3) not null
> references Clienti(CodClienti)
> ) TYPE=INNODB;
>
>
> insert into articoli
> values ('AX12','ferro da stiro',104,'cs',24.95);
> insert into articoli
> values ('AZ52','freccette',20,'sp',12.95);
> insert into articoli
> values ('BA74','pallone',40,'sp',29.95);
> insert into articoli
> values ('BH22','tritatutto',05,'cs',24.95);
> insert into articoli
> values ('BT04','forno',11,'el',149.49);
> insert into articoli
> values ('BZ66','lavatrice',52,'el',399.99);
> insert into articoli
> values ('CA14','setaccio',78,'cs',39.99);
> insert into articoli
> values ('CB03','bicicletta',44,'sp',299.99);
> insert into articoli
> values ('CX11','frullino',142,'cs',22.95);
> insert into articoli
> values ('CZ81','tavola pesi',68,'sp',349.95);
>
>
> insert into Rappresentanti
> values('03','Jones','Mary','123 Main','Grant','MI','49219',215,5);
> insert into Rappresentanti
> values('06','Smith','William','102
> Raymond','Ada','MI','49441',49412.5,7);
> insert into Rappresentanti
> values('12','Diaz','Miguel','419 Harper','Lansing','MI','49224',2150,5);
>
>
> insert into clienti
> values
> ('124','Adams','Sally','481Oak','Lansing','MI','49224',818.75,1000,'03');
> insert into clienti
> values
> ('256','Samuel','Ann','215Pete','Grant','MI','49219',21.5,1500,'06');
> insert into clienti
> values
> ('311','Charles','Don','48College','Ira','MI','49034',825.75,1000,'12');
> insert into clienti
> values
> ('315','Daniels','Tom','914Charry','Kent','MI','48391',770.75,750,'06');
> insert into clienti
> values
> ('405','Williams','Al','519Watson','Grant','MI','49219',402.75,1500,'12');
> insert into clienti
> values
> ('412','Adams','Sally','16Elm','Lansing','MI','49224',1817.5,2000,'03');
> insert into clienti
> values
> ('522','Nelson','Mary','108Pine','Ada','MI','49441',98.75,1500,'12');
> insert into clienti
> values
> ('567','Dinh','Tran','808Ridge','Harper','MI','48421',402.4,750,'06');
> insert into clienti
> values
> ('587','Galvez','Mara','512Pine','Ada','MI','49441',114.6,1000,'06');
> insert into clienti
> values
> ('622','Martin','Dan','419Chip','Grant','MI','49219',1045.75,1000,'03');
>
>
> insert into ordini
> values('12489','2002-09-02','124');
> insert into ordini
> values('12491','2002-09-02','311');
> insert into ordini
> values('12494','2002-09-04','315');
> insert into ordini
> values('12495','2002-09-04','256');
> insert into ordini
> values('12498','2002-09-05','522');
> insert into ordini
> values('12500','2002-09-05','124');
> insert into ordini
> values('12504','2002-09-05','522');
> -----------------------------------------------------
>
> Now, this is what is giving me an issue:
> -------------------------------------------------------
> use premiere;
>
>
> select *
> from clienti as c join rappresentanti as r on c.codrappr = r.codrappr
> where r.codrappr='03';
>
> select *
> from rappresentanti NATURAL JOIN clienti;
> ------------------------------------------------------
>
> For some weird reason the natural join returns an empty set, but there
> is a column, just the one I need whose name is the same
> in both relations which is Codrappr.
> Why doesn't it work as it's supposed to?
>
> As you can see they are the same:
> create table if not exists Rappresentanti(
> CodRappr char(2) primary key,
> cognome char(10),
> nome char(8),
> via char (15),
> citta char(15),
> prov char(2),
> cap char (5),
> TotProvv decimal(8,2),
> PerProvv decimal(8,2)
> ) TYPE=INNODB;
>
>
> create table if not exists clienti(
> CodCliente char(3) primary key,
> cognome char(10),
> nome char(8),
> via char (15),
> citta char(15),
> prov char(2),
> cap char (5),
> saldo decimal(8,2),
> fido decimal(8,2),
> CodRappr char(2) not null references
> Rappresentanti(CodRappr)
> ) TYPE=INNODB;
>
>
>
> Thank you very much in advance.
> I hope someone will solve this thing.
>
>
>
>
--
Reclaim Your Inbox!
http://www.mozilla.org/products/thunderbird
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/[email protected]