我有6个具有完全相同结构的表,字段名称如下:
country | incoming | outgoing_national | outgoing_us | outgoing_uk | outgoing_global | outgoing_text
我正在尝试编写一个费率表,当从下拉列表中选择一个国家/地区时,费率会立即发生变化(jusing jQuery)。因为一旦他们选择一个国家就会发生这种情况,它需要尽可能快。
所以基本上例如country ='England'我需要来自所有不同表的数据,所以我可以在页面上显示所有数据。我一直在玩一个我从以前的类似问题得到的代码,但是我很困惑,试图解决它。我很感激任何形式的帮助:D
答案 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'