首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用连接执行MySQL查询,如果不存在,则获取缺省值

使用连接执行MySQL查询,如果不存在,则获取缺省值
EN

Stack Overflow用户
提问于 2011-02-21 16:51:34
回答 2查看 755关注 0票数 0

我不知道这个问题的确切名称,所以请阅读示例和预期结果以澄清。

我需要一个查询,返回一些需要连接的数据的项目列表。我连接的一些数据数据可以是空的。让我展示一下我的实际查询:

代码语言:javascript
运行
复制
SELECT p.projectid, p.projectname, p.date, u.name, u.surnames
FROM projects p
JOIN rel_user_proj rup ON rup.projectid=p.projectid
JOIN users u ON u.userid=rup.userid
WHERE rup.codrole='PM'

rel_user_proj具有项目和用户之间的关系。我可以有多个关系,但我只需要一个,所以我使用适合我的where rup.codrole='PM‘。

问题是,对于某些项目,这个表可能没有结果,但如果没有结果,我需要将u.nameu.surnames作为NULL获取。

我怎么能做到这一点?

提前谢谢你!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-21 18:22:04

开始吧..。我想这就是你的答案:)

代码语言:javascript
运行
复制
SELECT DISTINCT 
                p.projectid
                , p.projectname
                , p.date
                , tab.name
                , tab.surnames
FROM 
                projects p
LEFT JOIN (
            SELECT DISTINCT 
                        rup.projectid
                        , u.name
                        , u.surnames
            FROM users u
            INNER JOIN 
                        rel_user_proj rup 
                                   ON u.userid = rup.userid
         ) tab 
            ON p.projectid = tab.projectid

哦..。下面是其中的PM子句。也是有效的。

代码语言:javascript
运行
复制
SELECT DISTINCT 
                p.projectid
                , p.projectname
                , p.date
                , tab.name
                , tab.surnames
FROM 
                projects p
LEFT JOIN (
            SELECT DISTINCT 
                        rup.projectid
                        , u.name
                        , u.surnames
            FROM users u
            INNER JOIN 
                        rel_user_proj rup 
                                   ON u.userid = rup.userid
            AND rup.codrole='PM'
         ) tab 
            ON p.projectid = tab.projectid
票数 3
EN

Stack Overflow用户

发布于 2011-02-21 16:56:38

LEFT JOIN将是您的最佳选择http://www.tizag.com/mysqlTutorial/mysqlleftjoin.php

从项目p左选择p.projectid,p.projectname,p.date,u.name,u.surnames加入rel_user_proj rup ON rup.projectid=p.projectid加入用户u ON u.userid=rup.userid WHERE rup.codrole='PM‘

希望这能有所帮助

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5063912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档