MySQL在其中带有IF或EXISTS

孔雀鱼

我在tableC中不存在以下ID的查询问题。尽管有LEFT JOIN,但如果tableC中缺少ID,则tableA和tableB中的ID不在结果中。那是因为这些ID的tableC.name不存在。我以为MySQL会忽略最后一部分,认为该子句为真……。

SELECT
    tableA.id, tableA.name
FROM
    tableA
    LEFT JOIN tableB ON tableA.id = tableB.id
    LEFT JOIN tableC ON tableA.id = tableC.id
WHERE
    tableA.latin = 'whatever'
    AND RIGHT(tableC.name,2) != 'y'

我想在WHERE子句的第二部分有一个使用IF,CASE或EXISTS的解决方案,但是通过以下三个尝试,我没有得到想要的结果(我只显示最后一行):

WHERE
    tableA.latin = 'whatever'
    AND IF(tableC.name <> 0, RIGHT(tableC.name,2) != 'y', ' ');

这也不会产生错误,但不会产生预期的结果:

WHERE
    tableA.latin = 'whatever'
    AND IF(tableC.name = true, RIGHT(tableC.name,2)!= 'y', ' ');

使用EXISTS尝试以下操作会给我MySQL Wordbench编辑器错误:

WHERE
    tableA.latin = 'whatever'
    AND if(EXISTS tableC.name, RIGHT(tableC.name,2) != 'y', ' ');
乔·史蒂芬妮(Joe Stefanelli)

每当您tableC.name在where子句中从左联接表引用列(对于您的情况)时,都将强制联接表现为内部联接。而是将测试移入联接条件。

SELECT tableA.id, tableA.name 
    FROM tableA
        LEFT JOIN tableB 
            ON tableA.id = tableB.id
        LEFT JOIN tableC 
            ON tableA.id = tableC.id
                AND RIGHT(tableC.name,2) != 'y'
    WHERE tableA.latin =  'whatever' 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在其中包含带有display_trace()的运行脚本以进行调试

来自分类Dev

搜索在其中带有'/'的字符串时,在vi编辑器中是否可以转义'/'?

来自分类Dev

UIView框架大小没有改变放置在其中的UIImageView

来自分类Dev

无效的URI:在C#中指定的无效端口(在其中指定了带有端口号的URL),例如http:// localhost:8080 / jasperserver / rest

来自分类Dev

Mysql在其中userid =?的行组中选择min

来自分类Dev

可以在其中调整带有小图片的textview吗?

来自分类Dev

查找用户必须在其中输入带有'sum(par1,par2,...)'之类的参数的命令的总和

来自分类Dev

Log4j在其中创建带有空“ camel-spring-redis-test.log”日志文件的“目标”文件夹

来自分类Dev

RichTextBox不显示',而是显示菱形,而在其中带有问号

来自分类Dev

RichTextBox不显示',而是显示菱形,而在其中带有问号

来自分类Dev

application(_:didFinishLaunchingWithOptions :)没有在其中打印任何内容

来自分类Dev

如何在其中添加带有textview的彩色矩形

来自分类Dev

Bash:如何创建一个脚本来处理带有特定子字符串的文件夹并在其中递归继续?

来自分类Dev

使用d3.js在其中绘制多个带有文本的圆圈

来自分类Dev

修改链表主要功能代码,用户将在其中输入带有正确消息的节点的索引和数据

来自分类Dev

如何使用C#在其中运行带有重命名计算机的Powershell脚本

来自分类Dev

CUDA:带有3D内核的嵌套FOR循环:如何确定线程应在其中写入结果的位置?

来自分类Dev

将Div保留在页面底部,并在其中带有图像的右侧

来自分类Dev

PHP preg_match_all:在其中查找带有“ @word”或“ #word”的字符串

来自分类Dev

如何在其中包含带有display_trace()的运行脚本以进行调试

来自分类Dev

在其中键入带有括号的字符串的正确方法吗?

来自分类Dev

具有嵌入在其中的UINavigationController的InstantiateViewController

来自分类Dev

SSH命令中带有su -c的反引号,而不在其中运行命令

来自分类Dev

查找用户必须在其中输入带有'sum(par1,par2,...)'之类的参数的命令的总和

来自分类Dev

RichTextBox不显示',而是显示菱形,而在其中带有问号

来自分类Dev

将Bash脚本SSH导入MYSQL Server,并在其中创建带有破折号的数据库

来自分类Dev

Bash:如何创建一个脚本来处理带有特定子字符串的文件夹并在其中递归继续?

来自分类Dev

文字没有在其中心旋转

来自分类Dev

带有活动目录的 Telerik 文件资源管理器,如果 AD 允许,用户只能在其中看到共享文件夹

Related 相关文章

  1. 1

    如何在其中包含带有display_trace()的运行脚本以进行调试

  2. 2

    搜索在其中带有'/'的字符串时,在vi编辑器中是否可以转义'/'?

  3. 3

    UIView框架大小没有改变放置在其中的UIImageView

  4. 4

    无效的URI:在C#中指定的无效端口(在其中指定了带有端口号的URL),例如http:// localhost:8080 / jasperserver / rest

  5. 5

    Mysql在其中userid =?的行组中选择min

  6. 6

    可以在其中调整带有小图片的textview吗?

  7. 7

    查找用户必须在其中输入带有'sum(par1,par2,...)'之类的参数的命令的总和

  8. 8

    Log4j在其中创建带有空“ camel-spring-redis-test.log”日志文件的“目标”文件夹

  9. 9

    RichTextBox不显示',而是显示菱形,而在其中带有问号

  10. 10

    RichTextBox不显示',而是显示菱形,而在其中带有问号

  11. 11

    application(_:didFinishLaunchingWithOptions :)没有在其中打印任何内容

  12. 12

    如何在其中添加带有textview的彩色矩形

  13. 13

    Bash:如何创建一个脚本来处理带有特定子字符串的文件夹并在其中递归继续?

  14. 14

    使用d3.js在其中绘制多个带有文本的圆圈

  15. 15

    修改链表主要功能代码,用户将在其中输入带有正确消息的节点的索引和数据

  16. 16

    如何使用C#在其中运行带有重命名计算机的Powershell脚本

  17. 17

    CUDA:带有3D内核的嵌套FOR循环:如何确定线程应在其中写入结果的位置?

  18. 18

    将Div保留在页面底部,并在其中带有图像的右侧

  19. 19

    PHP preg_match_all:在其中查找带有“ @word”或“ #word”的字符串

  20. 20

    如何在其中包含带有display_trace()的运行脚本以进行调试

  21. 21

    在其中键入带有括号的字符串的正确方法吗?

  22. 22

    具有嵌入在其中的UINavigationController的InstantiateViewController

  23. 23

    SSH命令中带有su -c的反引号,而不在其中运行命令

  24. 24

    查找用户必须在其中输入带有'sum(par1,par2,...)'之类的参数的命令的总和

  25. 25

    RichTextBox不显示',而是显示菱形,而在其中带有问号

  26. 26

    将Bash脚本SSH导入MYSQL Server,并在其中创建带有破折号的数据库

  27. 27

    Bash:如何创建一个脚本来处理带有特定子字符串的文件夹并在其中递归继续?

  28. 28

    文字没有在其中心旋转

  29. 29

    带有活动目录的 Telerik 文件资源管理器,如果 AD 允许,用户只能在其中看到共享文件夹

热门标签

归档