Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zmusić MySQL do zwracania duplikatów z klauzuli WHERE IN bez użycia JOIN/UNION?

Nie jestem pewien, dlaczego chcesz zakazać JOIN, ponieważ jest to dość istotne dla SQL. To jak blokowanie wywołań funkcji w języku funkcjonalnym.

Dobrym sposobem rozwiązania tego problemu jest utworzenie zestawu wyników zawierającego identyfikatory, które chcesz zwrócić i dołączenie do niego. Oto jeden sposób, aby to zrobić:

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

Nie jestem pewien, czy rozważałeś tę metodę? Nie ma żadnych problemów, których się obawiasz.

Jeśli zablokujesz dołączanie, nie możesz tego zrobić, chyba że użyjesz procedury składowanej, która moim zdaniem jest gorsza niż dołączanie.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oblicz wiek w MySQL (InnoDb)

  2. MySQL - Błąd zduplikowanego wpisu podczas próby dodania nowej kolumny

  3. MySQL:Pobierz nazwę kolumny lub alias z zapytania

  4. Jak ustawić pierwszy dzień tygodnia na poniedziałek podczas używania Week(Date) w PHP/MySQL?

  5. Co jest przeciwieństwem GROUP_CONCAT w MySQL?