Jake
Jake

Reputation: 3486

SQL if statement

How do you do if statements in sql? i want to do something like this:

SELECT DISTINCT exchange.id userid, exchange.name username, exchange.lastactivity     lastactivity, exchange.id avatar, exchange.id link, cometchat_status.message, cometchat_status.status
FROM buddy
if( buddy.penpalA = 887){
      JOIN exchange ON buddy.penpalA = exchange.id
}ELSE{
      JOIN exchange ON buddy.penpalB = exchange.id
}
LEFT JOIN cometchat_status ON exchange.id = cometchat_status.userid
if( buddy.penpalA = 887){
      WHERE buddy.penpalB =887
}ELSE{
      WHERE buddy.penpalA =887
}    

ORDER BY username ASC 

Upvotes: 0

Views: 1929

Answers (2)

Devin Burke
Devin Burke

Reputation: 13820

Just modify your WHEREs and ONs. Note that the parantheses around the ANDed comparisons is unnecessary; I did it just to clarify what is happening.

SELECT DISTINCT exchange.id userid, exchange.name username,
                exchange.lastactivity lastactivity, exchange.id avatar,
                exchange.id link, cometchat_status.message,
                cometchat_status.status
FROM buddy
JOIN exchange ON (buddy.penpalA = exchange.id AND buddy.penpalA = 887)
              OR (buddy.penpalB = exchange.id AND buddy.penpalA <> 887 AND buddy.penpalB = 887)
LEFT JOIN cometchat_status ON exchange.id = cometchat_status.userid
WHERE buddy.penpalA = 887 OR buddy.penpalB = 887
ORDER BY username ASC

UPDATE:

I changed the code above to also join when the penpalB is 887, as per my understanding of your comment.

Upvotes: 2

Brissles
Brissles

Reputation: 3891

Well, using Transact-SQL you can structure an IF-ELSE like this:

IF a > b
BEGIN
   // do something
END
ELSE
   // do something else

Upvotes: 0

Related Questions