Две таблицы и хитрая связь между ними

-faqer-

Я только учусь
Две таблицы и хитрая связь между ними

Всем здрасьте
Есть у меня одна проблемка, точнее две таблички:) продукты и аксессуары:
Products id|name|description
Accessories id|name|description
Проблемка в следующем, продуктов примерно 500, аксессуаров сколько пока неизвесно, но наверное в тех же пределах. К некоторым продуктам нет аксессуаров, а к некоторым их порядка 10, в тоже время некоторые аксессуары подходят только к одному продукту, а некоторые к 10-30. Каким образом грамотно организовать связь между таблицами (дополнительные колонки, дополнительные таблицы) чтобы при выводе списка продуктов по запросу:
PHP:
$rows = mysql_query(“SELECT * FROM `products` WHERE …”);
while ($row = mysql_fetch_array($rows))
{
echo $row['name'].”<hr>”.$row['description'].”<hr> XXX“;
}
на месте ХХХ выводился список аксессуаров???
Что мне там вложенный запрос сделать с циклом или как. Собираюсь выводить на странице 30-50 продуктов.
Собственно такая же задача стоит и при выводе списка аксессуаров (к каждому надо будет вывести список совместимых продуктов)
 

Кром

Новичок
добавь еще одну таблицу:
id|prod_id|access_id
и через нее делай связь.
 

-faqer-

Я только учусь
Такие мысли были
Т.Е. выходит что на месте ХХХ
надо делать при выводе каждого изделия запрос к базе
PHP:
$rows = mysql_query(“SELECT * FROM `products` WHERE …”); 
while ($row = mysql_fetch_array($rows)) 
{ 
echo $row['name'].”<hr>”.$row['description'].”<hr>“; 
$accessories = mysql_query("SELECT * FROM `compatibility` WHERE `prod_id` = ".$row['id']);
while ($accessory = mysql_fetch_array($accessories)) 
{
echo $accessory['name'].", ";
}
echo "<br>";
}
Не знаю может я привередничаю, но душа что не лежит.
Есть ли еще какие-то варианты???
 

Кром

Новичок
А к такому запросу у тебя душа лежит? :)

SELECT * FROM Accessories RIGHT JOIN compatibility ON Accessories.id=compatibility.access_id RIGHT JOIN Products ON compatibility.prod_id=Products.id WHERE Products.id = 1
 

Demiurg

Guest
Кром
вот толька id в этой таблице совершенно не нужен.
 

-faqer-

Я только учусь
PHP:
SELECT * FROM Accessories RIGHT JOIN compatibility ON Accessories.id=compatibility.access_id RIGHT JOIN Products ON compatibility.prod_id=Products.id WHERE Products.id = 1
По-взрослому!
Сейчас раздуплюсь
И скажу что и куда лежит:))
 
Сверху