mysql填充多个选择下拉列表

时间:2011-03-29 00:59:00

标签: mysql select drop-down-menu

我正在尝试从mysql填充一些选择下拉列表,但每个下拉列表来自不同的表。 当我执行以下操作时:

$data_sql = mysql_query("SELECT * FROM countries");
while($data = mysql_fetch_assoc($data_sql)){
  $countrylist .= '<option value="'.$data[country_iso].'">'.$data[country].'</option>';
}

一切正常。但是当我按照以下方式添加更多表时:

$data_sql = mysql_query("SELECT * FROM countries, states");
while($data = mysql_fetch_assoc($data_sql)){
  $countrylist .= '<option value="'.$data[country_iso].'">'.$data[country].'</option>';
  $statelist .= '<option value="'.$data[state_iso].'">'.$data[state].'</option>';
}

我的下降工作但每行重复3次。

1 个答案:

答案 0 :(得分:0)

你偶然发现一个隐含的JOIN,而你想要一个 UNION

SELECT * FROM countries
UNION 
SELECT * states

您当前的查询(SELECT * FROM countries, states)的作用如下:对于国家/地区的每一行,请将此国家/地区的数据与所有州相结合。

这意味着如果你有10个国家和10个州,那么总行数就是100.你自己很幸运,你在一张非常小的桌子上做了笛卡尔式的加入:)

您只想分别进行2次查询:尝试合并结果并不像2个单独的查询那样有效。