MySQL| MySQL使用子查询

来源:互联网 发布:mac c4d软件下载 编辑:程序博客网 时间:2024/06/05 10:35

使用子查询注意事项:

  • 1.MySQL 4.1引入了对子查询的支持.必须使用MySQL 4.1或更高级的版本.
  • 2.能嵌套的子查询的数目没有限制,不过在实际使用时由于性能的限制,不能嵌套太多的子查询。
  • 3.列必须匹配 在WHERE子句中使用子查询(如这里所示),应该保证SELECT语句具有与WHERE子句中相同数目的列。通常,子查询将返回单个列并且与单个列匹配,但如果需要也可以使用多个列.

    WHERE  order_num  IN(   SELECT order_num                         FROM orderitems                         WHERE prod_id = 'TNT2'                        );
  • 4.子查询和性能: 很多时候这种子查询会影响效率,可以用连接表来替代.

逐渐增加子查询来建立查询技巧:
先写内部的查询语句,将查询出来的结果当做外层查询的条件以此外推,让所有的语句都能单独运行后再讲所有的子查询语句组合起来.减少出错率.

格式化SQL:
包含子查询的SELECT语句难以阅读和调试别是它们较为复杂时更是如此。如上所示把子查询分解为并且适当地进行缩进,能极大地简化子查询的使用.(查询的内容,表,单个条件)

使用子查询EG:

SELECT cust_id FROM orders WHERE order_num  IN(SELECT order_num                     FROM orderitems                     WHERE prod_id = 'TNT2'                    );

注意: 如果在涉及到多张表中有同名的列时候,注意使用完全限定名.

原创粉丝点击