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

Tving MySQL til at returnere dubletter fra WHERE IN-klausulen uden at bruge JOIN/UNION?

Jeg er ikke sikker på, hvorfor du vil forbyde JOIN, da det er ret vigtigt for SQL. Det er som at forbyde funktionsopkald på et funktionelt sprog.

En god måde at løse dette på er at oprette et resultatsæt, der indeholder de id'er, du vil returnere og slutte dig til. Her er én måde at gøre det på:

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

Jeg er ikke sikker på, om du har overvejet denne metode? Det har ingen af ​​de problemer, som du ser ud til at være bange for.

Hvis du forbyder joins, kan du ikke gøre dette, medmindre du bruger en lagret procedure, som jeg vil sige er værre end at deltage.




  1. Oracle cursor til tildeling

  2. Importer filstørrelsesgrænse i PHPMyAdmin

  3. Sådan aktiveres MySQL Query Cache

  4. Hvordan returnerer man et array fra Java til PL/SQL?