sql >> Databasteknik >  >> RDS >> Mysql

Referens till yttre fråga i underfrågan JOIN

SELECT p1.*, p2.*
FROM player p1
JOIN team t1
  ON t1.id = p1.team_id AND t1.id = My_Team_ID
LEFT JOIN player p2
  ON p2.id != p1.id
JOIN team t2
  ON t2.id = p2.team_id AND t2.id != My_Team_ID
LEFT JOIN game g1
  ON (g1.playerA_id = p1.id OR g1.playerB_id = p1.id)
  AND (g1.playerA_id = p2.id OR g1.playerB_id = p2.id)
WHERE g1.id IS NULL

Om jag använder 1 för My_Team_ID får jag följande resultat, som visar de återstående matchningarna:

id  team_id name            id  team_id     name
1   1       Laurent Dupuis  6   2           Alec Russell
2   1       Stéphane Leroy  6   2           Alec Russell
3   1       Julien le Guen  4   2           Mark Johnsson
3   1       Julien le Guen  6   2           Alec Russell



  1. 'ER_PARSE_ERROR' på noden mysql när du infogar flera värden

  2. MySQL Group By med topp N-nummer av varje slag

  3. Allvarligt fel:Vänligen läs avsnittet Säkerhet i manualen för att ta reda på hur du kör mysqld som root

  4. MYSQL TINYBLOB vs LONGBLOB