2010-10-19 5 views
0

i ont ce schéma mysql:requête conditionnelle mysql

comments: 
    ----------------------------- 
    |id|pageid|userid| 

members: 
    ----------------------------- 
    |username|userid| 

parfois l'ID utilisateur des commentaires est vide, cause de commentaire Anon. comment je peux obtenir le nom d'utilisateur des membres si l'ID utilisateur des commentaires n'est pas vide.

i besoin d'obtenir quelque chose comme ceci:

--------------------------- 
|id|pageid|userid|username| 
--------------------------- 

Modifier. Je veux essayer d'être plus précis.

comments: 
    ---------------------------------- 
    |id|pageid|userid|comment  | 
    ---------------------------------- 
    |1 |1  |1  | hi   | 
    ---------------------------------- 
    |2 |1  |  | annon comment | 

members: 
    ----------------------------- 
    |username|userid   | 
    ----------------------------- 
    |john |1     | 

des thats est une donnée par exemple, maintenant je dois obtenir quelque chose comme ceci:

------------------------------------------- 
    |id|pageid|userid|comment  |username| 
    ------------------------------------------- 
    |1 |1  |1  | hi   |john | 
    ------------------------------------------- 
    |2 |1  |  | annon comment |  | 

ps désolé pour mon mauvais anglais.

Répondre

1
SELECT c.PageId,c.UserId, m.UserName FROM comments as c 
LEFT OUTER JOIN members m ON c.userid = m.userid 

LEFT JOIN vous obtient des champs qui ne sont pas un match dans le tableau à droite.

+0

merci, cela fonctionne maintenant. – greenbandit

1

Cela devrait fonctionner:

SELECT c.PageId,c.UserId, m.UserName FROM Members as m 
INNER JOIN Comments as c 
ON m.UserId = c.UserId 
+1

Si l'ID utilisateur de la table des commentaires est vide, tous ces commentaires anonymes sont ignorés. – greenbandit

+0

Oui, basé sur votre déclaration 'comment je peux obtenir le nom d'utilisateur des membres si l'ID utilisateur des commentaires n'est pas vide.' Ce serait le comportement correct ... –

Questions connexes