我有一个网站,可以在多个表格中存储<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第二个条形图等等)。 / p>
有没有办法像这样做一个select,并且只有列中每个元素的一次实例,并用空值填充列中的其余行?
答案 0 :(得分:8)
select foo as "f1" from footable where ..whatever..
union
select bar as "f1" from bartable where ..whatever..
这会给你一个结果集..但如果这些表真的没有任何关联......这对你来说仍然没有多大帮助......
答案 1 :(得分:8)
您可以执行以下操作: 假设表foo具有列a,b,c和表格栏具有列d,e,f
Select 'isFOO', a, b, c, null, null, null from foo
Union All
Select 'isBAR',null, null, null, d, e, f from bar
答案 2 :(得分:1)
或者可能是这样的:
(从那里选择a,b,c,'1'作为数字......) 联盟 (从那里选择a,null,null,'2'作为数字......) 联盟 (从那里选择a,b,null,'3'作为数字......) 按编号排序