加入订单,员工的名字和姓氏,项目和位置MySQL

时间:2013-04-16 14:44:39

标签: mysql database join

将订单,员工的姓名,项目和位置合并为一个,以便将内容导出到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时,Location_staff_link缩短了)

2 个答案:

答案 0 :(得分: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 

要进一步了解联接,请访问以下链接:

答案 1 :(得分:0)

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

首先缩小到第一个连接的最小值并更改字段以选择*(暂时,您可以在找到问题后立即返回实际字段),这样您就可以获取所有数据。

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

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

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