0

我正在构建一个 Joomla 模板。为此,我需要测试/查询数据库中的两个字段。我试图熟悉getDBO课堂,但被困在这里。

这两个查询几乎相同。我需要两个变量$category$hasField. 如何将这两个查询合并为一个?这有点多余。

$db = JFactory::getDBO(); 
$id = JRequest::getInt('id'); 

$db->setQuery('
   SELECT 
       #__categories.title 
   FROM 
       #__content, 
       #__categories 
   WHERE 
       #__content.catid = #__categories.id 
   AND 
       #__content.id = '.$id
    ); 
$category = $db->loadResult();


$db->setQuery('
   SELECT 
        #__attachments.filename,
        #__attachments.parent_id 
    FROM 
        #__attachments 
    WHERE 
        #__attachments.parent_id =' . $id
    ); 
$hasField = $db->loadResult();
4

2 回答 2

1

您可以尝试加入#__attachments第一个查询。

SELECT 
   #__categories.title,
   #__attachments.filename,
   #__attachments.parent_id 
FROM 
   #__content, 
   #__categories,
   #__attachments 
WHERE 
   #__content.catid = #__categories.id 
AND
   #__attachments.parent_id = #__content.id
AND 
   #__content.id = $id
于 2012-12-04T15:33:47.163 回答
0

我可能错了,因为没有地方可以测试,但它假设就像左连接:

SELECT 
   #__categories.title, atch.filename
 FROM 
   #__content, 
   #__categories
 LEFT JOIN
   #__attachments AS atch ON atch.parent_id = #__content.id 
 WHERE 
   #__content.catid = #__categories.id 
 AND 
   #__content.id = '.$id
); 
于 2012-12-04T15:36:57.273 回答