sql запрос садовода - как правильно?

Poster

Новичок
sql запрос садовода - как правильно?

Есть табличка Признаки

id | name
1 | зеленые
2 | спелые

И есть таблица Продукты, у каждого продукта в поле признак записан id признака (1 или 2)

Продукты
id | name | признак
1 | сливы| 1
2 | вишн | 2
3 | груш | 2
3 | алыч | 1

Хочется вот так вывести все это:

Продукты:
зеленые:
- сливы
- алыча

спелые:
- вишни
- груши

То есть разобрать все Продукты согласно принаку.

Все казалось бы легко, можно пройтись циклом по Признаку, прицепить LEFT JOIN'ом продукты и готово, все просто.

Но хочется вывести Продукты так, чтобы при отсутствии в таблице продутов с признаком "спелые" он не выводился, то есть тогда так:

Продукты:
зеленые:
- сливы
- алыча


Как построить запрос?
:rolleyes: спасибо если подскажете
 

SiMM

Новичок
SELECT products.name,sign.name FROM products,sign WHERE products.sign=sign.id ORDER BY sign.id
Ну а далее группируй клиентом в цикле вывода (если я правильно понял вопрос).
 

Poster

Новичок
Нет, наверное я немного запутанно спрсил. Хотелось выводить продукты с указанием признака:

спелые
- спелый1
- спелый2

зеленые
- зеленый1
- зеленый 2
- зеленый 3

А как мне после такого запроса 1(!) раз вывести признак и за ним "его" продукты?

И если среди всех продуктов нет ни одного зеленого то и признак "зеленый" не выводить


PHP:
$products = mysql_query("SELECT c.name AS cname, c.alias AS calias, pt.name AS ptname FROM catalog c, products_type pt
												WHERE c.product_type = pt.id ORDER BY pt.id");
												if (mysql_num_rows($products)) {
													while ($produkte = mysql_fetch_array($products)) {
														echo $produkte['ptname'].'<br>'; 
														echo '- <a class="nav" href="/'.$prod['salias'].'/'.$produkte['calias'].'/">'.$produkte['cname'].'&nbsp;'.$produkte['ptid'].'</a><br>';
													}
												}
 
PHP:
$res=mysql_query("select a.name,b.name as pr_name from products a, options b where a.optionid=b.id order by b.name");
$cp="";
while($it=mysql_fetch_assoc($res))
{
  if($cp!==$it['pr_name'])
  {
    echo "<b>{$it['pr_name']}:</b><br>";
    $cp=$it['pr_name'];
  }
  echo $it['name']."<br>";
}
?
 
Сверху