2013-02-17 89 views
0

我運行這個說法,工作正常....顯示來自關聯表的信息?

$sql = "SELECT skill,SUM(quantity) as sum FROM skills 
WHERE userid = $userid 
GROUP BY skill"; 

我的問題是列存儲技術從具有包含技能名稱的列的表agency_skills值。

我想弄清楚如何顯示技能名稱而不是存儲在技能表中的值?

這是我一起工作的整個代碼.....

<?php 
defined('_JEXEC') or die; 

$db = JFactory::getDBO(); 
$user =& JFactory::getUser(); 
$userid = $user->get('id'); 


$sql = "SELECT skill,SUM(quantity) as sum FROM skills 
WHERE userid = $userid 
GROUP BY skill"; 

$db->setQuery($sql); 

$rows = $db->loadObjectList(); 

?> 
<style> 
table, td, th 
{ 
    border-bottom:1px solid black; 
} 
    { 
    th 
background-color:#000000 
color:#FFF 
    } 


</style> 

<table> 
<tr> 
<th width="195">Skill</th> <th width="195">Total Completed</th> 
</tr> 
</table> 
<table> 
<?PHP foreach ($rows as $row): ?> 

<tr> 

<td width="200"> <?php echo $row->skill?> </td> 

<td width="190"> <?php echo $row->sum ?> </td> 
</tr> 
<?php endforeach ?> 
</table> 

回答

2

如果使用left outer join而不是默認的inner join的你可以加入這樣的

SELECT as.skillname, 
     SUM(s.quantity) as sum 
FROM agency_skills as `as` 
left outer join skills as s on s.skill = as.id 
WHERE s.userid = $userid 
GROUP BY as.skillname 

該表你即使skill s也不在skills表中。

Simplified SQL Fiddle demo

+0

我想你的意思是SELECT as.skillname或任何字段被稱爲獲得技能VS的id名稱。除此之外,很好的答案! – sgeddes 2013-02-17 00:34:58

+0

可能。不清楚這些字段被稱爲什麼。也許OP可以帶來一些亮點? – 2013-02-17 00:36:59

+0

這裏是表格結構.... – 2013-02-17 02:45:12