Вы меня извините конечно, но вы объясняете так что нифига не понятно что же вы хотите в итоге. Изъясняйтесь понятно или блок схему нарисуйте если уж словами не можете. Вообще судя из первого поста то выводиться у вас должны значения в независимости от того с =1 или с = 0, просто в случае одного из вариантов должны выбираться дополнительные поля. Я вас разочарую нельзя в одной выборке выбирать записи с разным количеством столбцов, но можно заменять отсутствующие значения к примеру значением null Как я понял вам нужно вывести значения b если с = 0 SELECT b FROM test WHERE c = 0но в случае если с = 1 нужно вывести еще и значения столбца a тогда SELECT b, a FROM test WHERE c IN (0,1)и UNION тут не нужен, если требуется заполнить a нулем если с != 1 SELECT b, IF(c = 1,a,NULL) AS a FROM test WHERE c IN (0,1) ORDER BY a ASCКстати сказать если у вас c может иметь только 2 значения 0 или 1, то и вот эта часть WHERE c IN (0,1)то же лишняя.