【问题标题】:Create a Complex Join/Create VIEW创建一个复杂的连接/创建视图
【发布时间】:2016-10-12 08:53:14
【问题描述】:

我需要创建一个复杂的 JOIN 查询,它使用 3 个表显示匹配预定义的订单。该表格显示了来自 2 个表的某些数据和来自第 3 个表的所有数据。无论如何,在我失败的尝试中,我认为可以通过创建一个组合了我需要的数据的表视图来做同样的事情。无论我尝试什么,使用 phpMyAdmin 都会出现语法错误。

我尝试的最新代码如下,出现未知语法错误。

CREATE VIEW SAlES_ORDER
FROM customer_info, item_info, order_info
WHERE customer_info.CustomerID=1
AND order_info.OrderID=1

我需要来自客户 1 和 orderID 1 的信息以及来自 Item 表的所有数据信息。我不明白如何创建或查看它,这就是我尝试 CREATE VIEW 路线的原因。我觉得我在这里遗漏了一些简单的东西,这是我提交这个项目的最后一步。

【问题讨论】:

  • 你的目标数据库是什么?甲骨文? sql服务器? DB2?访问(哈!我让我崩溃了!)
  • 基本 SQL。我们被建议使用 SQLFiddle,但在我开始我的项目时它没有工作,所以我使用 XAMP 安装程序来设置 phpMyAdmin。

标签: sql join view


【解决方案1】:

您缺少语法的某些部分。试试这个:

CREATE VIEW SAlES_ORDER AS
SELECT * 
FROM customer_info, item_info, order_info
WHERE customer_info.CustomerID=1
AND order_info.OrderID=1

但除非您真的想要交叉连接,否则您可能需要适当的条件连接:

CREATE VIEW SAlES_ORDER AS
SELECT * 
FROM customer_info
JOIN order_info ON order_info.CustomerID = customer_info.CustomerID
JOIN item_info ON item_info.OrderID = order_info.OrderID

并保留 WHERE 子句,但在使用时指定它。

【讨论】:

  • 我认为您使用 Join 路由是正确的,因为我的规则指定了“Join Query”。我会尝试一下,我认为我不需要为此使用 Where 子句。另外,我没有考虑将 VIEW 与 JOIN 一起使用,或者这是我真正看到最终结果的唯一方法?我之前尝试过查询导致“成功”,但没有直观地显示任何结果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-03
  • 1970-01-01
  • 2015-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多