【发布时间】:2010-02-04 05:13:19
【问题描述】:
我有一个网站,将<select> 选项存储在多个表格中,并根据各个页面提取所有相关选项。目前,我得到一个这样的查询:SELECT foo FROM foo_tbl;SELECT bar FROM bar_tbl;etc。这不是一个真正糟糕的问题,但我必须单独迭代每个选择结果。
我想将它们全部提取到一个网格中,然后执行类似的操作
if $row['foo'] != NULL { add to the foo options }
if $row['bar'] != NULL { add to the bar options }
etc
如果我使用像 SELECT DISTINCT f.foo, b.bar FROM foo_tbl AS f, bar_tbl AS b 这样的查询,我会得到所有可能的行组合(第一个 foo 第一条,第一个 foo 第二条,第二个 foo 第一条,第二个 foo 第二条,等等)。
有没有办法进行这样的选择,并且在一列中每个元素只有一次实例,并用空值填充该列中的其余行?
【问题讨论】:
-
您提出的解决方案很糟糕,尤其是在每种类型有不同数量的选项时。您应该运行多个查询,或者返回 UNIONed 结果,列是 [Type, Value]