当前位置:  开发笔记 > 编程语言 > 正文

这个MySQL查询是最好的主意吗?

如何解决《这个MySQL查询是最好的主意吗?》经验,为你挑选了1个好方法。

我正在处理的项目有两种类型的帐户," people"和" companies".

我持有一个users包含所有帐户的单个" "表格,只有登录所需的基本信息(电子邮件,通行证等),以及另外两个表格" user_profiles"(普通人)和" company_profiles"(公司),每个表格包含更多特定列type,两个users表通过" profile_user_id"列链接到常规" "表.

但是,每当我想列出可以是人和公司的用户时,我都会使用:

" select user_id, user_type, concat_ws('', concat_ws(' ', user_profiles.profile_first_name, user_profiles.profile_last_name), company_profiles.profile_company_name) as user_fullname".

当我列出这些用户时,我知道他们是"人"还是公司user_type.

我的方法是使用concat_ws正确的(最佳)方法吗?我做了这个而不是select每次*_name都避免返回超过必要的列.

谢谢

编辑:上面的查询继续如下: from users left join user_profiles on ... left join company_profiles on ...



1> mson..:
select
 u.user_id, u.user_type, concat_ws(profile_first_name + profile_last_name) as full_name
from 
 users u, user_profiles up
where u.key = up.key
 and u.user_type = 'user'

union

select
 u.user_id, u.user_type, concat_ws(profile_first_name + profile_last_name) as full_name
from 
 users u, company_profiles cp
where u.key = cp.key
 and u.user_type = 'company'

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有