SQL запрос: я застрял

Rynor

stay hungry
SQL запрос: я застрял

уважаемые!
скажем так:
1) есть таблица "cars"
там есть поле "color"
2) есть таблица "colors"
3) связка такая:
cars.color - colors.id
типа у тачки может быть какой-то цвет из таблицы цветов
4) но у тачки может быть особый случай
cars.color=0 (цвет неопределен), БЕЗ соответсвующей привязки к colors.id (colors.id=0 не имеет места быть)

как мне выбрать 1 select-запросом
cars.color и colors.id

можно как-нибудь?

благодарю за помощь!
БД MySQL но этот форум пооживленнее как-то, да простят меня модераторы
 

Lelik

Guest
select cars.color, colors.id from cars left join colors on (cars.color= colors.id);
 

Rynor

stay hungry
спасибо!
счас попробую
во-во я и думаю что надо двигаться дальше банальных select
сейчас как раз читаю про join но нихрена не понимаю
 

Crazy

Developer
Вместо cars.color=0 нужно использоват cars.color=NULL. Иначе left join пойдет лесом.
 

Sababa

Guest
если все машины и к ним цвета, то
select cars.color, colors.id from cars left join colors on (cars.color= colors.id);

только там, где cars.color = 0, colors.id будет NULL

если надо выбрать машины с неопред. цветом:
select cars.color, colors.id from cars left join colors on (cars.color= colors.id) where colors.id=null;
 

Lelik

Guest
Автор оригинала: Crazy
Вместо cars.color=0 нужно использоват cars.color=NULL. Иначе left join пойдет лесом.
нихрена не пойдет .. просто на выходе colors.id будет равен NULL
 

Rynor

stay hungry
да именно, надо по другому хранить информацию
когда сбиваются с ног простые запросы, надо по-другому хранить информацию, это я уже просек
тока заказчику невдомек, что его новое желание требует кучи времени и кое-какого бабла на пересмотр структуры БД
напильником из трактора приходится делать вертолет
но это уже мелочи
спасибо
 
Сверху