首页 > 解决方案 > 内连接,sql混淆

问题描述

这是我班级的挑战。使用 INNER JOIN 检索以下信息:

  1. 使用客户和订单表查找公司所有者创建的所有订单。

我想出了这个但是当我输入它时它说空集>>>

SELECT id FROM orders INNER JOIN customers USING (id);

这些是客户表中的列。顾客

 | id   | company | last_name | first_name  | email_address | job_title       
 | business_phone  | home_phone | mobile_phone | fax_number | address 
 | city | state_province  |  zip_postal_code |  country_region  | web_page    
 | notes | attachments |.

这些是订单表中的列。订单

| id  | employee_id | customer_id | order_date | shipped_date | shipper_id           
| ship_name | ship_address | ship_city | ship_state_province  
| ship_zip_postal_code  | ship_country_region  | shipping_fee | taxes                
| payment_type | paid_date | notes | tax_rate | tax_status_id | status_id

标签: mysql

解决方案


当你写:

SELECT id FROM orders INNER JOIN customers USING (id);

您要求:

SELECT o.ID              -- or c.ID
  FROM Orders AS o
  JOIN Customers AS c
    ON O.ID = C.ID;

您在问“哪些客户的 ID 与订单 ID 相同?”,这可能不是您的意思。

最有可能的是,您想使用以下变体:

SELECT o.ID AS Order_ID, c.ID AS Customer_ID
  FROM Orders AS o
  JOIN Customers AS c
    ON O.Customer_ID = C.ID;

您可以选择在选择列表中获得的信息。


推荐阅读