1

まず第一に、これが現在正しくないことはわかっています。うまくいかないので、私はこれを知っています。そうは言っても、希望する結果に近づけるための支援は大歓迎です。

質問があります:

$query = "SELECT cat.*, 
       prod.title                            AS product, 
       cat1.title                            AS category, 
       (SELECT cat2.* 
        FROM   ic_store_catalog AS cat2 
        WHERE  cat2.parentid = cat.parentid) AS children 
FROM   ic_store_catalog AS cat 
       LEFT JOIN ic_products AS prod 
              ON cat.productid = prod.productid 
       LEFT JOIN ic_product_categories AS cat1 
              ON cat.categoryid = cat1.categoryid 
WHERE  `storeid` = $storeid 
       AND `column` = $column 
       AND `parentid` = 0 
ORDER  BY `the_order` ASC";

これは私に次のエラーを出します:Operand should contain 1 column(s)問題として。これは保証されたサブセレクトに存在します。

print_rinを使用するときに達成する必要がPHPあるのは、Arrayこれと同様の構造です。

[0] => Array
            (
                [catalogID] => 165
                [storeID] => 0
                [categoryID] => 7
                [parentID] => 0
                [productID] => 4
                [title] => 
                [column] => 1
                [the_order] => 1
                [cat_order] => 1
                [category] => Cookies & Brownies
                [children] => Array 
                (
                  [0] => Array (
                      [catalogID] => 166
                      [storeID] => 0
                      [categoryID] => 8
                      [parentID] => 7
                      [productID] => 5
                      [the_order] => 1
                      [cat_order] => 1
                      [category] => Brownies
                  )
                )
            )

この結果に近づくための助けをいただければ幸いです。

4

1 に答える 1

0

(SELECT cat2.* FROM ic_store_catalog AS cat2 WHERE cat2.parentid = cat.parentid)

cat2.*を表す列を 1 つだけ置き換える必要がありchildrenます。

于 2013-01-15T20:30:06.857 に答える