Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 这个问题的解决方案是什么?_Mysql_Sql_Database_Mysql Workbench - Fatal编程技术网

Mysql 这个问题的解决方案是什么?

Mysql 这个问题的解决方案是什么?,mysql,sql,database,mysql-workbench,Mysql,Sql,Database,Mysql Workbench,我是数据库领域的新手。我目前正在使用Murach的mysql学习mysql。我在书中遇到了以下问题,但我无法找出解决问题的正确方法 编写一个SELECT语句 加入 客户、订单、订单项和 产品表。此语句应返回以下列: 姓, 名字, 订单日期、产品 me、项目价格、折扣金额、, 和 量 . 为表使用别名。 按对最终结果集排序 最后的 _名字, 顺序 _日期,以及 产品名称 到目前为止,我有一个疑问: select last_name , first_name , order_date , prod

我是数据库领域的新手。我目前正在使用Murach的mysql学习mysql。我在书中遇到了以下问题,但我无法找出解决问题的正确方法

编写一个SELECT语句 加入 客户、订单、订单项和 产品表。此语句应返回以下列: 姓, 名字, 订单日期、产品 me、项目价格、折扣金额、, 和 量 . 为表使用别名。 按对最终结果集排序 最后的 _名字, 顺序 _日期,以及 产品名称

到目前为止,我有一个疑问:

select last_name , first_name , order_date , product_name , tem_price,
       discount_amount, quantity 
from customers , orders , order_items product 
order by last_name , order_date , product_name 

好的,我们将分析这个查询。因为您没有指定数据库结构,所以我将进行一次分析

选择联接客户、订单、订单项和产品表的语句

这是对表的引用,在FROM子句中。你必须用WHERE子句把它们连接起来

此语句应返回以下列:姓、名、订单日期、产品名称、项目价格、折扣金额和数量

此部分引用SELECT子句

为表使用别名

这一部分涉及整个查询,意味着必须虚拟地重命名表,并且只形成此查询,并且在每个引用中必须使用新名称

SELECT c.last_name, c.first_name, o.order_date, p.product_name, 
       p.item_price, p.discount_amount, p.quantity
FROM Customers AS c, Orders AS o, Order_Items AS i, Products AS p
WHERE c.order_id = o.order_id
  AND i.order_id = o.order_id
  AND p.product_id = i.product_id
按姓氏、订单日期和产品名称对最终结果集进行排序

这一部分是指订单条款。你必须记住别名

SELECT c.last_name, c.first_name, o.order_date, p.product_name, 
       p.item_price, p.discount_amount, p.quantity
FROM Customers AS c, Orders AS o, Order_Items AS i, Products AS p
WHERE c.order_id = o.order_id
  AND i.order_id = o.order_id
  AND p.product_id = i.product_id
ORDER BY c.last _name, o.order _date, p.product_name

您可以对这4个表customer、Orders、Order\u items、Products使用内部联接,但请确保这3个表中的列之间存在匹配

基于给定信息的sql查询示例。假设CustomerID是两列之间的匹配项
使用ANSI标准联接语法:

SELECT c.last_name, c.first_name, o.order_date, p.product_name, 
       p.item_price, p.discount_amount, p.quantity
FROM Customers AS c
    INNER JOIN Orders      AS o ON c.order_id = o.order_id
    INNER JOIN Order_Items AS i ON  o.order_id = i.order_id
    INNER JOIN Products    AS p ON i.product_id =  p.product_id
ORDER BY c.last _name, o.order _date, p.product_name

到目前为止,你得到了什么?你能添加3个表的create语句吗?这是非常基本的SQL,我相信你所指的590页长的书也涵盖了这一点。提示,寻找join语句。也许她只是想理解其含义或查询。虽然,她应该在问题中包括她有什么tried@AllanS.Hansen这里有交叉联接的用法吗?除了你刚刚教过这个初学者糟糕的老式联接语法外,上次我看清单4中没有任何联接条件的表时,会导致3个交叉联接,即一个潜在的糟糕的笛卡尔积;你想修改你的答案吗?在你提出建议的时候,我正在做修改不过,谢谢你的支持revision@JCalcines感谢您对问题的完整分析。@JCalcines这有了很大的改进,但是@Sonali您不想学习这种老式的连接语法。这里使用的所有连接都是内部连接,FROM子句应该使用这种语法。@在学习执行查询时,您已经使用了。在控制SELECT、FROM和WHERE语句之后,开始使用联接。她刚刚开始学习SQL,所以我相信这是更好的方法,有4个表要连接。好的,你可以基于我提供的SQL查询,然后你可以通过添加D进行编辑,C将通过匹配D customerID和C customerID继续内部连接D
SELECT c.last_name, c.first_name, o.order_date, p.product_name, 
       p.item_price, p.discount_amount, p.quantity
FROM Customers AS c, Orders AS o, Order_Items AS i, Products AS p
WHERE c.order_id = o.order_id
  AND i.order_id = o.order_id
  AND p.product_id = i.product_id
ORDER BY c.last _name, o.order _date, p.product_name
 Select A.last_name,A.first_name,B.order_date,B.product_name,C.item_price,C.discount_amount,D.quantity 
 from TB_Customers A inner join TB_Orders B on A.CustomerID = B.CustomerID 
 inner join TB_Order_Items C on B.CustomerID = C.CustomerID on 
 inner join TB_Products D on C.CustomerID = D.CustomerID Where D.CustomerID ='TEST111'
SELECT c.last_name, c.first_name, o.order_date, p.product_name, 
       p.item_price, p.discount_amount, p.quantity
FROM Customers AS c
    INNER JOIN Orders      AS o ON c.order_id = o.order_id
    INNER JOIN Order_Items AS i ON  o.order_id = i.order_id
    INNER JOIN Products    AS p ON i.product_id =  p.product_id
ORDER BY c.last _name, o.order _date, p.product_name