连接表我有这个疑问在MySQL查询,而不是多个查询的
$query = "SELECT * FROM items WHERE itemStatus = '1' AND itemAdded > '$timestamp'";
一旦该查询返回的结果我遍历结果
结果阵列的itemid,itemLocationID,categoryParentID,的categoryID, ITEMNAME,itemDetails
在循环然后我用同一个类中调用函数运行其他三个查询
$locationName = $this->getLocationByName($locationID);
$categoryParentName = $this->getCategoryByName($categoryParentID);
$categoryName = $this->getCategoryByName($categoryID);
函数getLocationByName执行此查询;
$q = mysql_query("SELECT * FROM locations WHERE locationID = '$locationID'");
此返回locationID,LOCATIONNAME的阵列,locationLink
功能getCategoryByName执行该查询;
$q = mysql_query("SELECT * FROM categories WHERE categoryID = '$categoryID'");
这个返回的categoryID,类别名称的数组,categoryLink
可能有人请帮我优化这个查询,并可能加入他们的行列,以节省做这么多的疑问。
在此先感谢。
林现在使用此查询
$q = mysql_query("SELECT
i.itemID,
i.locationID,
i.categoryParentID,
i.categoryID,
i.itemName,
i.itemDetails,
l.*,
c.*
FROM 物品i 内上i.locationID = l.locationID 内部联接类别C于i.categoryID = c.categoryID WHERE itemStatus加入位置升= '1' AND itemAdded> '$时间戳'“)或死亡(mysql_error());
,其结果是
Array
( [ITEMID] => 81300 [locationID] => 17 [categoryParentID] => 21 [的categoryID] => 183 [ITEMNAME] =>嗒嗒 [itemDetails] =>嗒嗒 [LOCATIONNAME ] =>辉煌,它按照预期拉动该地点。 [locationLink] =>等等 [categoryName] =>辉煌它按预期拉入类别。 [categoryLink] =>等等 )
[categoryName] => //these are missing for categoryParentID
[categoryLink] => //these are missing for categoryParentID
你可以发布你的表结构吗?看起来你只需要使用JOINS。 – sgeddes 2013-02-19 16:00:52