0 0

mysql联合查询的条件问题0

例如:
SELECT DISTINCT `table1`.id FROM `table1` LEFT OUTER JOIN `table2` ON `table2`.`table1_id` = `table1`.`id` LEFT OUTER JOIN `table3` ON `table3`.`table2_id` = `table2`.`id` WHERE `table1`.`id` = 1 AND (table3.name='name')

如果table2是空的,或者table3是空的,即使table1有`id` = 1那条记录,由于后面的条件(table3.name='name')不成立,那么返回结果是空,我想要的结果是如果table2是空的或者table3是空的,也要返回table1的记录,这样的语句该怎么写?
2012年8月15日 15:29

1个答案 按时间排序 按投票排序

0 0

采纳的答案

这种要用外连接来实现,其实你已经写出来了,只是你的where筛选条件要写到left outer join那里面去,因为你的and table3.name='name'会让前面的外连接失效:

SELECT DISTINCT table1.id
  FROM table1
  LEFT OUTER JOIN table2
    ON table2.table1_id = table1.id
  LEFT OUTER JOIN table3
    ON table3.table2_id = table2.id
   AND table3.name = 'name'
 WHERE table1.id = 1

2012年8月15日 16:07

相关推荐

    mysql多表联合查询的教程

    MySQL 多表联合查询教程 在本教程中,我们将学习 MySQL 中的多表联合查询,包括多表插入和多表更新的操作。多表联合查询是指从多个表中检索数据的操作,这种操作在实际应用中非常常见。 什么是多表联合查询 多表...

    mysql多表联合查询

    mysql多表联合查询 表连接的约束条件 MySQL如何优化LEFT JOIN和RIGHT JOIN

    MySQL联合索引用法示例

    MySQL联合索引是一种优化查询性能的机制,它允许在多个列上创建单个索引,以便在查询中同时使用这些列时能更快地找到数据。本示例将深入讲解联合索引的概念,并通过实例来展示如何在MySQL中创建和使用联合索引。 ...

    MySql基本查询、连接查询、子查询、正则表达查询讲解

    2.2、按条件查询 (1) 比较运算符 > , ,= , != (),>= , [sql] view plain copy select * from STUDENT where STU_AGE>13; in(v1,v2..vn) ,符合v1,v2,,,vn才能被查出 IN关键字可以判断某个字段的值是否在...

    mysql数据库的多表设计和各种查询(连接查询\子查询\联合查询\报表查询),以及数据库备份和恢复

    文档对mysql数据库的多表设计思路和面试必问的查询方式;以及最基础的数据库的备份

    mysql连接查询、联合查询、子查询原理与用法实例详解

    本文实例讲述了mysql连接查询、联合查询、子查询原理与用法。分享给大家供大家参考,具体如下: 本文内容: 连接查询 联合查询 子查询 from子查询 where子查询 exists子查询 首发日期:2018-04-11 连接查询...

    MySQL索引原理及慢查询优化1

    MySQL索引原理及慢查询优化是数据库管理中的重要主题,尤其是在高并发、大数据量的...通过合理的索引设计、查询优化以及对磁盘IO的理解,可以有效避免和解决慢查询问题,从而让MySQL在各种应用场景中发挥出最佳性能。

    数据分析系列 16/32 | MySQL中子查询与联合查询

    前面说了很多MySQL中的查询,比如条件查询、分组聚合查询、连接查询,今天来说一下另外两个非常的重要的查询,MySQL中的子查询和联合查询。 PART01  子查询 子查询也称嵌套查询,是将一个查询语句嵌套在另一个查询...

    深入浅析Mysql联合索引最左匹配原则

    然而,如果查询条件只匹配了联合索引的部分左侧列,例如`SELECT * FROM test WHERE col2=“2”`,虽然最左匹配原则不完全满足,但MySQL依然能够使用索引的部分,这被称为“部分索引匹配”。在这种情况下,MySQL会...

    mysql多表联合查询操作实例分析

    MySQL的多表联合查询是数据库操作中非常重要的一个概念,特别是在处理复杂的数据关系时,能够有效地从多个表中提取所需信息。本篇文章将深入探讨这一主题,通过实例分析来阐述其语法、功能以及操作技巧。 首先,让...

    MySQL联合索引功能与用法实例分析

    MySQL联合索引,也称为复合索引,是数据库优化中的一种关键策略,它允许数据库系统在多个列上创建单一的索引,以提高查询性能。理解联合索引的工作原理和如何有效利用它对于提升数据库查询效率至关重要。 联合索引...

    MySql 5.1 参考手册.chm

    7.2.11. MySQL如何简化外部联合 7.2.12. MySQL如何优化ORDER BY 7.2.13. MySQL如何优化GROUP BY 7.2.14. MySQL如何优化LIMIT 7.2.15. 如何避免表扫描 7.2.16. INSERT语句的速度 7.2.17. UPDATE语句的速度 7.2.18. ...

    MySQL学习笔记 MySQL学习笔记

    - DQL(数据查询语言):包括基础查询、条件查询、排序、分组、函数、连接查询、子查询、分页和联合查询。 - DML(数据操纵语言):涉及INSERT、UPDATE和DELETE语句,用于添加、修改和删除数据。 - DDL(数据定义...

    MySQL 5.1参考手册

    7.2.11. MySQL如何简化外部联合 7.2.12. MySQL如何优化ORDER BY 7.2.13. MySQL如何优化GROUP BY 7.2.14. MySQL如何优化LIMIT 7.2.15. 如何避免表扫描 7.2.16. INSERT语句的速度 7.2.17. UPDATE语句的速度 ...

    MySQL 5.1中文手冊

    7.2.11. MySQL如何简化外部联合 7.2.12. MySQL如何优化ORDER BY 7.2.13. MySQL如何优化GROUP BY 7.2.14. MySQL如何优化LIMIT 7.2.15. 如何避免表扫描 7.2.16. INSERT语句的速度 7.2.17. UPDATE语句的速度 7.2.18. ...

    (010)《第五部分-练习题3:MySQL三表联合查询》【包含公司面试题】

    在本题目中,我们面临的是一个关于MySQL数据库的三表联合查询的问题,涉及到的学生表A、成绩表B和课程表C。以下是对每个查询操作的详细解析: 1. 查询出学习成绩及格以上的学生姓名与成绩: ```sql select A.SNAME,...

    详解Mysql多表联合查询效率分析及优化

    MySQL中的多表联合查询是数据库操作中常见的需求,特别是在处理复杂的数据分析和报表时。本文将深入探讨多表联合查询的效率分析以及优化策略。 首先,我们要了解多表连接的几种基本类型: 1. **笛卡尔积(Cross ...

    MySQL 5.1参考手册中文版

    7.2.11. MySQL如何简化外部联合 7.2.12. MySQL如何优化ORDER BY 7.2.13. MySQL如何优化GROUP BY 7.2.14. MySQL如何优化LIMIT 7.2.15. 如何避免表扫描 7.2.16. INSERT语句的速度 7.2.17. UPDATE语句的速度 ...

    查询效率提升10倍!3种优化方案,帮你解决MySQL深分页问题.doc

    本文总结了三种优化方案,解决 MySQL 深分页问题,查询效率直接提升 10 倍。 知识点: 1. 深分页问题:深分页问题是指在分页查询中,当翻页过多的时候,查询效率急剧下降。 解决方案: 2. 准备数据:创建一张...

Global site tag (gtag.js) - Google Analytics