Php SQL笛卡尔选择框

Php SQL笛卡尔选择框,php,mysql,Php,Mysql,我有一个PHP表单,它使用几个由查找表填充的选择框。为了减少每页的查询数量,我试图找到一种创建笛卡尔乘积的方法,该乘积将输出如下结果: ----------------------------------------------------------------- | City | State | SchoolDistrict | --------------------------------------------------

我有一个PHP表单,它使用几个由查找表填充的选择框。为了减少每页的查询数量,我试图找到一种创建笛卡尔乘积的方法,该乘积将输出如下结果:

-----------------------------------------------------------------
|        City       |   State    |    SchoolDistrict            |
-----------------------------------------------------------------
| Adamsville        |     AL     |   Adamsville  Public Schools |
| Brownsville       |     AK     |   Baker-Cow USD              |
| Cowtown           |     AR     |   NULL                       |
| NULL              |     AZ     |   NULL                       |
| NULL              |     CA     |   NULL                       |
-----------------------------------------------------------------
然后我可以循环遍历每个字段,直到它找到null(或0长度的字符串)

当我尝试时:

SELECT a.City, b.State, c.SchoolDistrict FROM Cities a, State b, SchoolDistricts c
它返回:

-----------------------------------------------------------------
|        City       |   State    |    SchoolDistrict            |
-----------------------------------------------------------------
| Adamsville        |     AL     |   Adamsville  Public Schools |
| Brownsville       |     AK     |   Baker-Cow USD              |
| Cowtown           |     AR     |   Baker-Cow USD              |
| Cowtown           |     AZ     |   Baker-Cow USD              |
| Cowtown           |     CA     |   Baker-Cow USD              |
-----------------------------------------------------------------

有什么想法吗?

我想出的一个解决办法是

SELECT a.City, "City" type from Cities a 
UNION ALL
SELECT b.State, "State" from States b 
UNION ALL
SELECT c.SchoolDistrict, "SchoolDistrict" from SchoolDistricts c 

这将是一个查询,您可以检查第二列的值并执行必要的操作。

原始表是什么样子的,它们是如何连接的?基本上,它们只是具有上面列出的值的单列。这实际上比我最初设想的解决方案简单得多。只需要一个简单的开关。如果可以的话,我会投更多的票。谢谢