ho 2 tabelle (semplifico un pò):

oggetti
Codice PHP:
CREATE TABLE  `prova`.`oggetti` (
`
idINT NOT NULL AUTO_INCREMENT ,
`
testoVARCHAR250 NOT NULL ,
`
prezzoDECIMAL5NOT NULL ,
PRIMARY KEY (  `id` )
ENGINE INNODB;

INSERT INTO `oggettiVALUES(1'primo oggetto'10.10);
INSERT INTO `oggettiVALUES(2'secondo oggetto'12.84); 
movimenti
Codice PHP:
CREATE TABLE  `prova`.`movimenti` (
`
idINT NOT NULL AUTO_INCREMENT ,
`
idOggettoINT NOT NULL ,
`
tipoMovimentoSMALLINT NOT NULL ,
PRIMARY KEY (  `id` )
ENGINE INNODB 
e devo avere una query che mi restituisce id oggetto sempre, e se c'è il collegamento con la tabella movimenti l'id del movimento, altrimenti null.

questa è quella che ho scritto:

Codice PHP:
SELECT oggetti.idmovimenti.id
FROM oggetti
LEFT JOIN movimenti ON 
movimenti.idOggetto oggetti.id 
e funzionerebbe anche, se la tabella movimenti è vuota mi restituisce

id id
1 NULL
2 NULL

che è giusto, idem se ho un movimento per un solo oggetto:

INSERT INTO `movimenti` VALUES(1, 1, 2);
1 1
2 NULL

ora però io dovrei differenziare per il campo movimenti.tipoMovimento...

perchè se correggo al query con

Codice PHP:
SELECT oggetti.idmovimenti.id
FROM oggetti
LEFT JOIN movimenti ON 
movimenti.idOggetto oggetti.id 
WHERE movimenti.tipoMovimento '4' 
se non ci sono i movimenti non mi restituisce nessuna riga, invece del idOggetto e NULL?