1

配列のデータを使用して列を追加し、MySql テーブルに結合したいと考えています。

たとえば、配列 ($relevance) があるとします。

$relevance = array(
  array('product_id' => 1, 'relevance' => 2),
  array('product_id' => 2, 'relevance' => 5),
  array('product_id' => 3, 'relevance' => 1),
);

一方、次のテーブル (products) があります。

product_id  | product_name
--------------------------
1           | Product 1
2           | Product 2
3           | Product 3

ここで、productsテーブルからデータを選択し、それらに$relevance基づいてそれらを結合してproduct_id、次のようなものを取得したいと考えています。

product_id  | product_name  | relevance
---------------------------------------
1           | Product 1     | 2
2           | Product 2     | 5
3           | Product 3     | 1

つまり、MySql データベースと、次のような「意味」を持つ配列の両方のデータを使用して、LEFT JOIN で SELECT を作成するにはどうすればよいですか。

SELECT `p`.*, `{{$relevance}}`.* FROM `products` AS `p`
LEFT JOIN `{{$relevance}}`
ON p.product_id = {{$relevance}}.product_id
4

2 に答える 2

0

さて、別のテーブルの関連性を作成してから、JOIN を使用することができます。または、ループを使用してそれらのデータを取得できます。何かのようなもの

$relevance = array(
    array(1, 'relevance' => 2),
    array(2, 'relevance' => 5),
    array(3, 'relevance' => 1),
);

$q = mysql_query("SELECT * FROM products")
while($r = mysql_fetch_assoc($q))
{
   $productRelevance = $relevance[$r['prod_id']-1];
}

ただし、一部の製品を削除すると、このコードは失敗する可能性があり、それらの ID は正常です (例: 1,2,5,6,7,10)。別のテーブルを使用することをお勧めします。

于 2013-07-22T13:51:09.060 に答える