0

将订单、员工的名字和姓氏、项目和位置合并为一个,这样我就可以将内容导出到 Excel 电子表格中。

SELECT orders.order_id, staff.staff_id, staff.first_name, staff.last_name, items.name, locations.address1, locations.address2, locations.state,     locations.zip_code, orders.created_at
FROM orders
INNER JOIN staff
ON orders.staff_id = staff.staff_id
INNER JOIN items
ON orders.item_id = items.item_id
INNER JOIN location_staff
ON location_staff.staff_id = staff.staff_id
INNER JOIN locations
ON location_staff.loc_id = location.loc_id

我正在尝试收集此信息以放入 Excel 文档,但我的查询未返回任何结果。任何帮助,将不胜感激。

这是一个ERD图,便于进一步理解

https://www.dropbox.com/s/7inma4s42xq5t4a/ERD.jpg

(Location_staff_link 在创建为 location_staff 时被缩短)

4

2 回答 2

0

只需删除FROM子句中的额外表格,

SELECT orders.order_id, 
       staff.staff_id, 
       staff.first_name, 
       staff.last_name, 
       items.name, 
       orders.created_at 
FROM   orders 
       INNER JOIN staff 
               ON orders.staff_id = staff.staff_id 
       INNER JOIN items 
               ON orders.item_id = items.item_id 
       INNER JOIN locations 
               ON location.staff_id = staff.staff_id 

要进一步了解有关联接的更多信息,请访问以下链接:

于 2013-04-16T14:46:14.373 回答
0

您的查询中没有任何内容看起来很糟糕,所以我建议在这种情况下找到答案。

先把第一次join的最小化,把字段改成select *(暂时发现问题可以回到真实字段),这样就可以把所有的数据都塞进去了。

您是否获取记录,然后在该联接中的表上添加任何 where 子句。你还有记录吗?

然后一次添加一个连接和每个 where 子句,直到找到记录消失的那个。这将告诉您需要做什么来修复它。

通常在这种没有返回记录的情况下,其中一个连接需要是左连接,或者没有满足 where 子句条款的数据,或者连接之一定义不正确。有时,问题在于您的数据库没有您期望的数据。但首先你必须使用上面的过程来诊断问题出在哪里。

于 2013-04-16T15:21:32.707 回答