sql >> Databáze >  >> RDS >> Mysql

Lze tento sql dotaz zjednodušit?

Můžete použít jiný JOIN abyste se vyhnuli druhému IN . Podvýběr vrátí pouze osoby, které hrají tenis i fotbal:

SELECT *
FROM Person
WHERE Person.Id IN
(
    SELECT spp1.PersonId
    FROM SportsPerPerson spp1
    JOIN SportsPerPerson spp2 ON ( spp2.PersonId = spp1.PersonId )
    JOIN Sports s1 on spp1.SportsId = s1.Id
    JOIN Sports s2 on spp2.SportsId = s2.Id
    WHERE s1.Name = 'Tennis'
      AND s2.Name = 'Soccer'
)


  1. gitlab Chyba 500 po aktualizaci při prohlížení projektů

  2. Jak správně vytvořit veřejné synonymum

  3. Jak vyprázdnit statistiky performance_schema bez restartování MySQL?

  4. Jak funguje MySQL CASE?