помогите с запросом к базе

prolis

Новичок
Код:
select * from goods g, xref_goods_colors x, goods_colors gc
where 
x.good_id=g.id
and gc.id=x.color_id
and g.active=1
and g.id='.intval($id)
а вот " В случае с "0" или "" необходимо выводить эти цвета" я не понял
 

baev

‹°°¬•
Команда форума
Как-то так:
… WHERE xref_goods_colors.link != 0 AND xref_goods_colors.link != "" AND xref_goods_colors.good_id = …
 

zheka

Новичок
Код:
select * from goods g, xref_goods_colors x, goods_colors gc
where 
x.good_id=g.id
and gc.id=x.color_id
and g.active=1
and g.id='.intval($id)
а вот " В случае с "0" или "" необходимо выводить эти цвета" я не понял
Выходит так, что иногда к цвету может быть не присвоен товар, просто выводиться возможный цвет, но без ссылки на товар. Потому проверка по айди, который может быть равен 0 или "" может не пройти корректно.
 

prolis

Новичок
Противоречие детектед:
Все работает корректно, только вот когда товар (на который должна вести ссылка) деактивируется, необходимо чтобы его цвет не появлялся на странице.
В случае с "0" или "" необходимо выводить эти цвета.
 

zheka

Новичок
вопрос закрыт, помог этот код:
SELECT
goods_colors.*,
xref_goods_colors.link
FROM xref_goods_colors
JOIN goods_colors ON goods_colors.id = xref_goods_colors.color_id
left join goods on goods.id = xref_goods_colors.link
WHERE (goods.active = 1 or xref_goods_colors.link = 0 or xref_goods_colors.link = "" )and xref_goods_colors.good_id = '.intval($id)
 
Сверху