2011-09-28 2 views
2

je:Rookie se joindre mysql question

  • une table coupons avec une colonne appelée owner_id et id
  • et une table owners avec une colonne appelée id et website_url.

Je voudrais obtenir owners.website_url utilise seulement coupons.id (qui est fourni dans une variable php $coupon_id

Voici mon meilleur coup.?

SELECT owners.website_url 
FROM owners o 
LEFT JOIN coupons c 
ON o.id = c.owner_id 
WHERE c.id='$coupon_id' 
LIMIT 1 

Est-ce exact je mis LIMIT 1 beacause Il ya beaucoup de coupons par propriétaire

Répondre

1

Cela semble correct, mais il est inutile d'utiliser un LEFT JOIN là depuis que vous êtes filte Annulez les jointures qui ont échoué dans votre clause WHERE. Il suffit d'utiliser JOIN.

Vous ne devriez pas non plus avoir besoin de la clause LIMIT car tous les coupons doivent avoir des identifiants uniques (en supposant que id est une clé primaire) et chaque coupon a un seul propriétaire.

+0

Salut, merci. Est-ce parce que je l'ai limité à 1? La limite 1 est-elle nécessaire? –

+0

@Andypandy: ce n'est pas nécessaire puisque 1 coupon appartient toujours à 1 et seulement 1 propriétaire – zerkms

0
SELECT o.website_url 
     FROM coupons c 
INNER JOIN owners o ON o.id = c.owner_id 
    WHERE c.id='$coupon_id'