MySql查询优化

时间:2012-03-27 10:29:23

标签: mysql

我有3个表,我需要有关如何从中获取数据的建议。

表名

details_varchar  

details_int  

details_date

每个都有value_id [Int]和value_name [value_name类型因表名而异 - Varchar,Int,Date]

条件

  • 在3个表中的任何一个中只会出现一个唯一的value_id。即,从1到n的ID根据其数据类型存储在这些表中。如果value_id = 1且value_name [type] = int,则它存储在details_int表中。

我需要什么

select value_name from 3 tables[may appear in any one of the table] where value_id = '[I have this value stored in a variable]'

我尝试了什么

UNION - 但所有表都需要具有相同的列类型。

JOINS - 所有字段都应该连接。[我猜]

1 个答案:

答案 0 :(得分:1)

SELECT value_name
FROM (  SELECT value_name
        FROM details_varchar
        WHERE value_id = {$int_value_id}
        UNION ALL
        SELECT value_name
        FROM details_int
        WHERE value_id = {$int_value_id}
        UNION ALL
        SELECT value_name
        FROM details_date
        WHERE value_id = {$int_value_id}) AS h

这可以给你你想要的东西吗?