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>
4

1 に答える 1

2

このようにそのテーブルに参加できます

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

left outer joinデフォルトの代わりにa を使用すると、テーブルに存在しない sinner joinも取得されます。skillskills

簡略化された SQL Fiddle デモ

于 2013-02-17T00:27:41.003 に答える