在MySQL中查看或子查询

时间:2011-05-21 17:35:29

标签: mysql sql views

用户(用户名,Catogory_ID Sub_Catergory_ID

类别Catogory_ID,Categories_Name)

SubCatogoies Sub_Catergory_ID,SubCatogoies_Name)

code中是FK和它的PK

问题1

我需要的是使用所有这三个表 OR 创建一个视图,以获取Catogory和Sub_Catogory名称作为其ID

问题2

在exec中什么会更快?

1 个答案:

答案 0 :(得分:1)

将所有3个表中的数据汇总在一起的单个查询看起来像这样:

select u.*, c.Categories_Name, s.Sub_Categories_Name
    from Users as u
    left outer join Categories as c
        on c.Category_ID = u.Category_ID
    left outer join SubCategories as s
        on s.Sub_Category_ID = u.Sub_Category_ID;

可以将其设置为视图或简单地按原样运行。至于性能,物化视图的执行速度可能比每次执行时执行连接的即席查询的执行速度更快。但除非你看到性能问题,否则我不会尝试沿着这些线进行优化。如果即席查询足够快,请不要担心优化它。