我有两个表,项目和itemmeta。 item具有item_id,它将其链接到itemmeta,它具有itemmeta_id,item_id,meta_key和meta_value。我这样做,所以如果我需要添加一个特殊的标志或值的项目,我不必不断改变项目表。如何从一个查询中的另一个表中检索一个表中的记录和相关记录?
现在我付出了灵活性的代价。我想知道如果我可以将查询和一些PHP组合成一个更好设计的查询。
首先我做这样的事情:
SELECT * FROM items;
然后一边通过这些循环我在PHP这样做对每个:
$sql = "SELECT * FROM itemmeta WHERE item_id='".$item['item_id']."' ";
$meta_result = mysql_query($sql, $conn) or die(mysql_error());
$item['meta'] = array();
while($meta=mysql_fetch_assoc($meta_result)) {
$item['meta'][$meta['meta_key']] = $meta['meta_value'];
}
是否可以使用子查询做第二部分或类似的东西?我认为困难的部分会保持相同的产出。例如:$ item ['meta'] ['my_key'] ='value'。我认为它会更多$ item ['meta'] [0] [0] ='my_key'和$ item ['meta'] [0] [1] ='value'。