当前位置: 首页 > 面试题库 >

SQL语句可让所有客户无订单

宋飞文
2023-03-14
问题内容

我有一个典型的Persons表和一个Orders表,其定义方式使我可以按以下方式进行JOIN查询以返回所有Persons的Orders。

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.id=Orders.Person_id

问题是,我该如何编写一条语句以返回所有无订单的人?

我正在使用mysql。

提前谢谢大家。


问题答案:

您可能要使用LEFT JOINIS NULL

SELECT     Persons.LastName, Persons.FirstName
FROM       Persons
LEFT JOIN  Orders ON Persons.id = Orders.Person_id
WHERE      Orders.Person_id IS NULL;

左联接的结果始终包含“左”表(人员)的所有记录,即使联接条件在“右”表(订单)中找不到任何匹配的记录也是如此。如果没有匹配项,则“右”表中的列将NULL出现在结果集中。



 类似资料:
  • 我正在为我的大学项目开发一个电子商务网站(spring MVC、Java、mySql、Hibernate)。我有各种模型,如客户,产品,订单,客户历史等。 我能够显示所有客户的详细信息(在管理页面)和所有产品供客户浏览。 但我面临的问题是,我如何展示一个客户的订单和订单历史? 我的orders表有orderId、productId、quantity和total Price。但是要显示产品名,我必须

  • 本文向大家介绍Oracle 用户密码有效期的sql语句,包括了Oracle 用户密码有效期的sql语句的使用技巧和注意事项,需要的朋友参考一下 废话不多说了,直接给大家写sql语句了,当然写法还有很多种,我也只是给大家分享其中的一种解决办法,有不同见解的可以留言哦。 oracle的密码是存在有效期的,有时候会遇到密码到期需要重设的情况,查看当前密码有效期的语句: 将密码的时间限制改为无限制: 以上

  • 我已使用以下代码创建了一个Oracle SP。如果我从SQLDeveloper执行它,那么它运行时不会出现任何错误/问题。但是,当我尝试从.NET代码调用同一SP时,将引发一个异常,并显示消息“Oracle.DataAccess.Client.OracleException:ORA-00900:invalid SQL statement”。 Oracle SP代码: 我的VB.NET代码: 有什么

  • 我正在使用pyhs2作为hive客户端。无法识别包含where子句的sql语句。得到 'pyhs2.error.Pyhs2Exctive:'处理语句时出错: 失败:执行错误,从组织返回代码1。阿帕奇。hadoop。蜂箱ql.exec。MapRedTask先生的 但它在蜂箱壳中运行正常。

  • 问题内容: 在SQL Server 2005中,我有一个包含订单ID和产品ID的订单详细信息表。我想编写一条sql语句,查找具有特定订单内所有项目的所有订单。因此,如果订单5包含项1、2和3,则我希望所有其他订单也具有1、2和3。此外,如果订单5具有2次两次和3次一次,则我希望所有其他订单具有两个2和一个3。 我的偏爱是它返回完全匹配的订单,但是,如果这样更容易执行/性能更好,则可以接受超集订单。

  • 问题内容: 我有此查询返回我的ID 但我收到此语句的语法错误 我如何正确更新从第一条语句中检索到的ID 问题答案: 正确的: