Wpis z mikrobloga

#programowanie #mysql #sql

Mirki, mam takie zapytanie:

SELECT u.* FROM (

(

(SELECT t1.id from t1 LIMIT 10)

UNION

(SELECT t2.id from t2 LIMIT 10)

)

) AS u LIMIT 10;


Czy da się w jakiś sposób zrobić tak, aby drugi select był pominięty, gdy pierwszy dał jakikolwiek wiersz?
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@eloar: DISTINCT służy do wybrania różnych wartości, a mi chodzi o niewykonywanie pierwszego selecta, gdy count(id) w pierwszym jest większy od zera
  • Odpowiedz
@darco3: To by nawet mogło przejść, ale prawdopodobnie nie będzie zbyt wydajne (dokładając do tego wiele warunków w WHERE) - wątpię aby MySQL wykrył, że zapytanie w WHERE NOT EXISTS () jest takie samo, jak to przed UNION
  • Odpowiedz