1. SQL / Говнокод #21630

    −46

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    /* где-то на 4м уровне подзапросов из подзапросов нашёл такое:  */
    ( 
    	SELECT 1 AS num , .... 120 строк логики на case/when/then ....
    	FROM tablea a 
                   WHERE a.id = @id /*  70млн, есть индекс по id, не уникальный */
    ) AS tbl1 
     LEFT JOIN ( 
    	SELECT 1 AS num , еще чуть-чуть case/when/then
    		FROM tableb b 
    		WHERE b.reference = @value /* 80млн, есть индекс но половина записей - пустые строки. */ ) AS tbl2
    	ON tbl1.num = tbl2.num

    left join по константам.

    Запостил: bliznezz, 02 Ноября 2016

    Комментарии (2) RSS

    • больной ублюдок!
      зачем вообще нужен был left join если там можно было написать on 1=1 или вообще cross join
      Ответить
      • если во второй таблице ничего не найдется по условиям в where, то чтобы получить данные из первой таблицы.

        это такая денормализация union all.
        Ответить

    Добавить комментарий