【发布时间】:2011-07-08 16:35:55
【问题描述】:
我有 3 张桌子:
网站:ID、名称
关联:site_id, assoc_type, assoc_id
选项:ID、姓名
我想一次性完成以下查询
SELECT * FROM sites
FOREACH site SELECT * FROM assoc WHERE assoc_type='option' AND site_id = site.ID
FOREACH assoc SELECT name FROM options WHERE ID = assoc.ID
FOREACH SITE
echo name, array(option 1, option2, option3);
这可能吗?
我正在尝试缩短的代码
$getsites = mysql_query("SELECT * FROM sites")or die(mysql_error());
while($row = mysql_fetch_array($getsites)){
echo $row['name'];
$getassoc = mysql_query("SELECT * FROM assoc WHERE type='options' AND site_id = '$row[ID]'")or die(mysql_error());
echo'<ul>';
while($subrow = mysql_fetch_array($getassoc)){
$getoption = mysql_query("SELECT * FROM options WHERE ID = '$subrow[assoc_id]'")or die(mysql_error());
$option = mysql_fetch_assoc($getoption);
echo '<li>'.$option['name'].'</li>';
}
echo'</ul><br/>';
}
【问题讨论】:
-
每个站点都与最多 3 个选项相关?