2010-03-28 7 views
2

J'ai un 'utilisateurs' table utilisateur qui a des champs comme:requête pour ajouter une colonne en fonction du résultat de là colonnes

id 
first_name 
last_name 
... 

et ont une autre table qui détermine les relations:

user_id 
friend_id 
user_accepted 
friend_accepted 
.... 

I aimerait générer une requête qui sélectionne tous les utilisateurs mais ajoute aussi un autre champ/colonne dit 'network_status' qui dépend des valeurs de user_accepted et de fiend_accepted. Par exemple, si user_accepted est true, friend_accepted est faux, je veux que le champ 'network_status' indique 'request sent'. Puis-je le faire en une seule fois? (Je préférerais ne pas à l'utilisateur if/else dans la requête, mais si c'est la seule façon à ce que ce soit)

Répondre

3

Vous devrez jeter un oeil à CASE Statement

Quelque chose comme

SELECT u.id, 
     u.first_name, 
     u.last_name, 
     CASE 
      WHEN r.user_accepted = 1 AND r.friend_accepted = 0 
       THEN 'request sent' 
      ELSE 'Not sure' 
     END 
FROM users u LEFT JOIN 
     relationships r ON u.id = r.user_id 
Questions connexes