моя основа на SQL довольно слабая, поэтому я надеюсь, что вы справитесь со мной.У меня есть три таблицы: содержание, категории и категоризация.Настройка была выбрана, поскольку некоторое содержимое будет принадлежать одной или нескольким категориям.
Я хочу получить содержимое и соответствующие категории.
Это слишком упрощенная версия текущего сценария, безпроцедуры проверки ошибок:
$q = "SELECT * FROM contents WHERE contents.foo = 'bar'"
$resource = mysql_query($q);
$categoryFilter = array();
$q2 = "SELECT * FROM categorization WHERE ";
while($content = mysql_fetch_assoc($resource))
{
$categoryFilter[] = "content_id='" . $content["id"] . "'";
}
if(count($categoryFilter))
{
$q2 .= implode(" OR ", $categoryFilter);
mysql_query($q2);
}
В этом суть.Я надеюсь, вы понимаете, что я пытаюсь сделать.Я не знаю, могу ли я на самом деле использовать JOINS, content_id
может присутствовать в нескольких строках в categorization
.Поэтому я просто добавил несколько OR
, пытаясь выбрать элементы один за другим.Я действительно не хотел бы использовать несколько запросов в этом сценарии.Я надеюсь, что кто-нибудь может предложить подход
Спасибо за ваше время