【问题标题】:SQL TEST: OUTER JOIN a prod tbl & compOrder tbls. Display id & prodname frm product tbl, display id & totAmt fr compOrder tbl where both tbl id<10SQL 测试:外部加入 prod tbl 和 compOrder tbls。显示 id & prodname frm product tbl, display id & totAmt fr compOrder tbl where both tbl id<10
【发布时间】:2021-08-13 09:59:08
【问题描述】:

我有一个 prod 表和 compOrder 表。我需要对 product 和 completedOrder 表执行 OUTER JOIN。 显示 product 表中的 id 和 productname 以及两个表中 id 小于 10 的 completedOrder 表中的 id 和 totalAmount。

这是我迄今为止所拥有的。我是新人,正在学习,需要指导。在此先感谢 - 阿曼达

SELECT product.id, 
       product.productName, 
       completedOrder.id, 
       completedOrder.totalAmount
FROM completedOrder
FULL JOIN product
    ON product.id < '10' = completedOrder.id < '10'
ORDER BY productName;

【问题讨论】:

  • MySQL 不支持 FULL JOIN。 ON 子句必须设置加入条件,而不是过滤条件,必须放在 WHERE 子句中。
  • SELECT product.id, product.productName, completedOrder.id, completedOrder.totalAmount FROM completedOrder LEFT JOIN product ON product.id = completedOrder.id WHERE product.id
  • 记住将整数视为整数。不要假设优化器会明白你的意思。

标签: mysql outer-join


【解决方案1】:

您使用 2 个表 prod 和 compOrder。这两个表有什么关系? 让我们假设 product.id 在 compOrder 表中作为 product_id[外键]。 您必须像这样更改您的查询,

    SELECT p.id, p.productName, c.id,c.totalAmount
    FROM completedOrder as c
    JOIN product as p
    ON p.id=c.product_id
    WHERE p.id < '10' AND c.id < '10'
    ORDER BY p.productName;

【讨论】:

  • 谢谢。这给了我丢失的部分。选择 product.id, product.productName, completedOrder.id, completedOrder.totalAmount FROM completedOrder 左加入产品 product.id = completedOrder.id WHERE product.id
猜你喜欢
  • 2021-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-08
  • 1970-01-01
  • 2011-09-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多