sql >> Database teknologi >  >> RDS >> Mysql

Kan denne sql-forespørgsel forenkles?

Du kan bruge en anden JOIN for at undgå den anden IN . Undervalget returnerer kun de personer, der spiller både tennis og fodbold:

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. Organiser dit hjemmekontor for øget produktivitet

  2. Opret MySQL-database fra Java

  3. Er der en måde at hente den første indgang i en tabel i databasen ved hjælp af SQL-forespørgsel?

  4. Sådan konverteres rækker til kolonner i Oracle SQL