从许多不同的MySQL表中获取数据

时间:2009-08-14 13:03:12

标签: mysql

我有6个具有完全相同结构的表,字段名称如下:

country | incoming | outgoing_national | outgoing_us | outgoing_uk | outgoing_global | outgoing_text

我正在尝试编写一个费率表,当从下拉列表中选择一个国家/地区时,费率会立即发生变化(jusing jQuery)。因为一旦他们选择一个国家就会发生这种情况,它需要尽可能快。

所以基本上例如country ='England'我需要来自所有不同表的数据,所以我可以在页面上显示所有数据。我一直在玩一个我从以前的类似问题得到的代码,但是我很困惑,试图解决它。我很感激任何形式的帮助:D

2 个答案:

答案 0 :(得分:1)

SELECT * FROM Table_1 WHERE country='England'
UNION 
SELECT * FROM Table_2 WHERE country='England'
.
.
.

等等。

如果要查看两个或更多表中相同的行,请使用UNION ALL

答案 1 :(得分:1)

最快的方法是通过union all。当然,这不会删除重复项,因此如果您需要这样做,那么请改用union(尽管您会受到性能影响)。此外,您需要索引所有表中的country列。这样做会很快撤回所有这些查询。

其次,为什么你有六个具有相同结构的表?这对我来说似乎有点不合适。

让所有国家/地区可用:

select distinct
    country
from table1

获取国家/地区内的所有数据:

select
    *
from
    table1 t1
where
    country = 'England'
union all
select
    *
from
    table2 t2
where
    country = 'England'

...

union all
select
    *
from
    table6 t6
where
    country = 'England'
相关问题