sql >> Databasteknik >  >> RDS >> Mysql

Hur använder jag en IF-sats i en MySQL-anslutningsfråga?

Ange villkoret som en del av ON-satsen:

SELECT m.id, u.first_name AS otherUser
FROM matches AS m
LEFT JOIN users AS u ON (u.id=m.user2ID and u.id = m.user1ID) or (u.id<>m.user2ID and u.id = m.user2ID) 
WHERE m.user1ID=2 OR m.user2ID=2

Ett annat sätt att göra samma sak:

SELECT m.id, u.first_name AS otherUser
FROM matches AS m
LEFT JOIN users AS u ON IF(u.id=m.user2ID,u.id = m.user1ID,u.id = m.user2ID) 
WHERE m.user1ID=2 OR m.user2ID=2


  1. Varför misslyckas den här frågan med EXECUTE IMMEDIATE?

  2. Infoga där det inte finns-utan primärnyckel

  3. MySQL - Hur man räknar alla rader per tabell i en fråga

  4. Använda index i SQL Server-minnesoptimerade tabeller