-1
SELECT      ntc.newsID, ntc.categoryID, category.title
FROM        news_to_category ntc
LEFT JOIN   news_category category
ON          ntc.categoryID = category.categoryID
WHERE       ntc.newsID IN (2,4)

在这张桌子上

news_to_category
    categoryID newsID
    32         2
    33         2
    23         4

news_category
    categoryID title
    32         Important
    33         Cars
    23         Fishing

结果应该是:

Array
(
    [2] => Array
        (
            [0] => Array
                (
                    [0] => 32
                    [1] => Important
                )
            [1] => Array
                (
                    [0] => 33
                    [1] => Cars
                )
        )
    [4] => Array
        (
            [0] => Array
                (
                    [0] => 23
                    [1] => Fishing
                )
        )
)

第二个数组的键应该是 newsID。只需 1 个查询就可以得到这个结果吗?非常感谢!

4

4 回答 4

0

查询是正确的,但会返回一个一维数组。

于 2012-10-18T05:36:13.043 回答
0

像这样工作(表名略有不同):

 SELECT     ctn.newsID, ctn.categoryID, cat.title
    FROM        wcf".WCF_N."_cnews_news_to_category ctn
    LEFT JOIN   wcf".WCF_N."_cnews_category cat
    ON          ctn.categoryID = cat.categoryID
    WHERE       newsID IN (".implode(',',$newsIDs).")

    $result = WCF::getDB()->sendQuery($sql);
    $news = array();        
    // save info
    while ($row = WCF::getDB()->fetchArray($result)) {
        $news[$row['newsID']][] = $row;
    }
于 2012-10-18T05:40:41.310 回答
0

尝试这个

$res = mysql_query("SELECT      ntc.newsID, ntc.categoryID, category.title
                    FROM        news_to_category ntc
                    LEFT JOIN   news_category category
                    ON          ntc.categoryID = category.categoryID
                    WHERE       ntc.newsID IN (2,4)");

$array = array();

while($row = mysql_fetch_array($res))
{
    if(!isset($array[$row["newsID"]]))
    $array[$row["newsID"]]=array();

    array_push($array[$row["newsID"]], array($row["categoryID"],$row["title"]));
}

echo "<pre>";
var_dump($array);
于 2012-10-18T06:06:30.167 回答
0

如果您使用的是 php

<?php

while($res=mysql_fectch_assoc($resource))
{
$result[$res['newsID']][]=array($res['categoryID '],$res['title']);

}



?>
于 2012-10-18T05:44:15.430 回答