将订单,员工的姓名,项目和位置合并为一个,以便将内容导出到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缩短了)
答案 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子句条款的数据或其中一个连接未正确定义。有时,存在一个问题,即您的数据库没有您期望的数据。但首先,您必须使用上述过程来诊断问题所在。