「inventory」と「inventory_type」という 2 つのテーブルがあります。「inventory」テーブルにはその名前とタイプが格納され、「inventory_type」テーブルには RAM、CPU などのタイプ名とソート順が格納されます。以前に JOINS を使用したことがなく、どのタイプを使用すればよいかわかりませんが、次のコードではどれも機能しないようです。
副次的な質問として、以下のコードでは、「inventory」が左側のテーブルになりますか、それとも「inventory_type」が左側に結合されますか?
function getInventoryOptions($db, $default_value, $datacenter)
{
$query = "SELECT inventory.id, inventory.name, inventory_type.short_name
FROM inventory LEFT JOIN inventory_type
ON inventory.type = inventory_type.id WHERE inventory.datacenter = " . $datacenter . " ORDER BY inventory_type.sort_order ASC";
$result = mysql_query($query, $db);
echo '<option value="">None</option>';
if ($result)
{
while($row = mysql_fetch_array($result))
{
$id = $row["inventory.id"];
$name = $row["inventory.name"];
$type = $row["inventory_type.short_name"];
if ($default_value == $id)
{
echo '<option selected value="' . $id . '">' . $type . ": " . $name . '</option>';
}
else
{
echo '<option value="' . $id . '">' . $type . ": " . $name . '</option>';
}
}
}
}