Ciao, ho due tabelle

elenco elementi
elenco voti apportati dagli utenti sugli elementi


io vorrei eseguire una query che passando come parametro l'ID utente (uid), ritorni *tutti* gli elementi della tabella 1 (elementi) e nel caso in cui ci sia un voto apportato dall'utente a qualche record della tabella elementi, visualizzare un campo aggiuntivo user_rate col valore eseguito dall'utente

se l'utente non ha apportato voti all'elemento mi basta che user_rate sia NULL (ovviamente non zero)

quindi voglio visualizzare tutti i record della tabella elementi con un campo aggiuntivo user_rate imposato a

- NULL se nella tabella dettaglio questo utente non ha votato nulla
- valore della votazione inserita dall'utente


(altro dubbio: come posso evitare che nella secoda tabella ci siano due voti da parte di un utente sullo stesso elemento?? dovrei impostare come chiave primaria id_location e uid?? oppure altro?)


tabella elementi

Codice PHP:


CREATE TABLE 
IF NOT EXISTS `locations` (
  `
idint(11NOT NULL AUTO_INCREMENT,
  `
titlevarchar(250NOT NULL,
  `
descriptiontext,
  `
timestamptimestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  
PRIMARY KEY (`id`)
ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=201 

tabella voti utenti


Codice PHP:

CREATE TABLE 
IF NOT EXISTS `locations_rates` (
  `
idint(11NOT NULL AUTO_INCREMENT,
  `
id_locationint(11NOT NULL,
  `
uidint(50NOT NULL,
  `
rateint(1NOT NULL,
  
PRIMARY KEY (`id`)
ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=

Grazie infinite!!