Reputation: 3486
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
Reputation: 13820
Just modify your WHERE
s and ON
s. Note that the parantheses around the AND
ed 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
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