sql >> Database >  >> RDS >> Mysql

Forceer MySQL om duplicaten van de WHERE IN-clausule te retourneren zonder JOIN/UNION te gebruiken?

Ik weet niet zeker waarom je JOIN wilt verbieden omdat het vrij essentieel is voor SQL. Het is alsof je functieaanroepen in een functionele taal verbiedt.

Een goede manier om dit op te lossen, is door een resultatenset te maken met de id's die u wilt retourneren en hieraan mee te doen. Hier is een manier om het te doen:

SELECT Table1.*
FROM Table1
JOIN (SELECT 1 AS id
      UNION ALL SELECT 2
      UNION ALL SELECT 3
      UNION ALL SELECT 4
      UNION ALL SELECT 5
      UNION ALL SELECT 1
      UNION ALL SELECT 2
      UNION ALL SELECT 5
      UNION ALL SELECT 5) AS T1
ON Table1.id = T1.id

Ik weet niet zeker of je deze methode hebt overwogen? Het heeft geen van de problemen waar je bang voor lijkt te zijn.

Als je joins verbiedt, kun je dit alleen doen als je een opgeslagen procedure gebruikt, wat volgens mij erger is dan meedoen.




  1. Wat is SQL Server? (Definitie, versies, edities)

  2. MySql SELECT AS - Voeg alle veldnamen toe

  3. MariaDB JSON_MERGE_PRESERVE() uitgelegd

  4. mysql invoegen als waarde niet bestaat in een andere tabel