如何用2个sql构建一个关联数组


How to build an associative array with 2 sqls?

我想构建一个关联数组,它将运行两个mysql表。表名:cs_lots, cs_lots_history .

My PHP CODE -

$rows = array();
$res2 = mysql_query("SELECT * FROM cs_lots WHERE active_lot='1'") or die(mysql_error());
$result1 = mysql_query("SELECT DISTINCT id_lot FROM cs_lots_history WHERE user_steamid='".$_SESSION['steamid']."'") or die(mysql_error());
while($row = mysql_fetch_array($res2)) {
    $rows []= array(
        'id' => $row['id'],
        'inv_id' => $row['inv_id'],
        'inv_assets' => $row['inv_assets'],
        'name' => $row['inv_name'],
        'inv_image' => $row['inv_image'],
        'inv_rarity' => $row['inv_rarity'],
        'inv_color' => $row['inv_color'],
        'inv_type' => $row['inv_type'],
        'inv_price' => $row['inv_price'],
        'price_ticket' => $row['price_ticket'],
        'maxUsers' => $row['places'],
        'nowUsers' => $row['now_places'],
        'my' => false
      );
}

数组的代码:

LOTS = [{"id":"166","inv_id":"989","inv_assets":"3432669422","name":"Redline ","inv_image":"image","inv_rarity":"Field-Tested","inv_color":"d32ce6","inv_type":"1","inv_price":"2105.97","price_ticket":"14","maxUsers":"240","nowUsers":"1","my":false},
{"id":"167","inv_id":"929","inv_assets":"3551634073","name":"Hyper Beast ","inv_image":"image","inv_rarity":"Battle-Scarred","inv_color":"eb4b4b","inv_type":"1","inv_price":"924.43","price_ticket":"8","maxUsers":"180","nowUsers":"0","my":false},
{"id":"168","inv_id":"1104","inv_assets":"3313740799","name":"Asiimov ","inv_image":"image","inv_rarity":"Battle-Scarred","inv_color":"eb4b4b","inv_type":"1","inv_price":"1495.00","price_ticket":"13","maxUsers":"180","nowUsers":"19","my":false},
{"id":"169","inv_id":"847","inv_assets":"3603670527","name":"Jaguar ","inv_image":"image","inv_rarity":"Battle-Scarred","inv_color":"eb4b4b","inv_type":"1","inv_price":"2711.65","price_ticket":"13","maxUsers":"320","nowUsers":"8","my":false},
{"id":"170","inv_id":"1100","inv_assets":"3313741398","name":"Asiimov ","inv_image":"image","inv_rarity":"Field-Tested","inv_color":"eb4b4b","inv_type":"1","inv_price":"2756.70","price_ticket":"16","maxUsers":"260","nowUsers":"10","my":false},
{"id":"171","inv_id":"899","inv_assets":"3551642235","name":"Atomic Alloy ","inv_image":"image","inv_rarity":"Factory New","inv_color":"d32ce6","inv_type":"1","inv_price":"862.50","price_ticket":"8","maxUsers":"180","nowUsers":"1","my":false}];

现在我的数组与一个mysql表一起运行,我只有my:false,但我需要将键my和值false更改为true,其中SQL $result1$row['id']具有相同的结果$result1['id_lot']。例如:如果$result1['id_lot'] = $row['id'],我需要以下代码:

{"id":"166","inv_id":"989","inv_assets":"3432669422","name":"Redline ","inv_image":"image","inv_rarity":"Field-Tested","inv_color":"d32ce6","inv_type":"1","inv_price":"2105.97","price_ticket":"14","maxUsers":"240","nowUsers":"1","my":true}`

谢谢。

左连接+别名:

$rows = array();
$res2 = mysql_query("SELECT cs_lots_history.id, cs_lots_history.user_steamid, cs_lots_history.id_lot, cs_lots.id as csid, inv_id, inv_assets, inv_image, inv_color, inv_name, inv_rarity, inv_type, inv_price, price_ticket, places, now_places FROM cs_lots LEFT JOIN cs_lots_history ON cs_lots.id = cs_lots_history.id_lot WHERE active_lot='1' OR user_steamid='".$_SESSION['steamid']."' GROUP BY cs_lots.id") or die(mysql_error());
$a=0;
while($row = mysql_fetch_array($res2)) {
    $rows []= array(
        'id' => $row['csid'],
        'inv_id' => $row['inv_id'],
        'inv_assets' => $row['inv_assets'],
        'name' => $row['inv_name'],
        'inv_image' => $row['inv_image'],
        'inv_rarity' => $row['inv_rarity'],
        'inv_color' => $row['inv_color'],
        'inv_type' => $row['inv_type'],
        'inv_price' => $row['inv_price'],
        'price_ticket' => $row['price_ticket'],
        'maxUsers' => $row['places'],
        'nowUsers' => $row['now_places'],
        'my' => !empty($row['id_lot']) ? true : false   
    );
}

谢谢@Sean。