ciao, mi sà che stò facendo un pò (un bel pò) di confusione con gli alias.

facciamo un esempio basilare:
Codice PHP:
CREATE TABLE IF NOT EXISTS `a` (
  `
idint(11NOT NULL auto_increment,
  `
colorevarchar(10) default NULL,
  
PRIMARY KEY  (`id`)
ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=;

INSERT INTO `aVALUES(1'nero');
INSERT INTO `aVALUES(2'blu');
INSERT INTO `aVALUES(4'verde');

CREATE TABLE IF NOT EXISTS `b` (
  `
idint(11NOT NULL auto_increment,
  `
idColoreint(11) default NULL,
  `
formavarchar(10) default NULL,
  
PRIMARY KEY  (`id`),
  
KEY `idColore` (`idColore`)
ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=;

INSERT INTO `bVALUES(11'quadrato');
INSERT INTO `bVALUES(22'triangolo');



//esempio di query select
SELECT
a
.colore AS myColore,
b.forma AS myForma
FROM a
INNER JOIN b ON 
(a.id b.idColore)
WHERE myColore != 'nero' 
la query mi restituisce sempre errore: "#1054 - Unknown column 'myColore' in 'where clause' "

il mio dubbio è: sbaglio a utilizzare gli alias, o non posso usarli nella clausola where?