Mysql 从桥接表联接数据

Mysql 从桥接表联接数据,mysql,Mysql,我正在学习一个数据库类,在使用JOIN命令获取所需数据时遇到了问题。我希望我在正确的轨道上…如果在我的模型和查询中有更好的方法,我将非常感谢您的任何输入 每个员工已处理的销售交易记录 ,我试图回答以下问题: 下面是我尝试过的一个查询,但没有得到正确的输出。我不得不在销售中使用表别名,因为我不断收到唯一的错误。我的桥接表中只有10行,但是,我得到了100个结果…JOIN语句正在踢我的屁股 SELECT sales.cashier, inventory.prod_name, inventory.un

我正在学习一个数据库类,在使用JOIN命令获取所需数据时遇到了问题。我希望我在正确的轨道上…如果在我的模型和查询中有更好的方法,我将非常感谢您的任何输入

每个员工已处理的销售交易记录

,我试图回答以下问题:

下面是我尝试过的一个查询,但没有得到正确的输出。我不得不在销售中使用表别名,因为我不断收到唯一的错误。我的桥接表中只有10行,但是,我得到了100个结果…JOIN语句正在踢我的屁股

SELECT sales.cashier, inventory.prod_name, inventory.unit_price 
FROM inventory, sales 
JOIN inv_sales ON inventory_prod_id = inventory.prod_id
JOIN sales AS sales1 ON sales_sales_id = sales_id;
编辑:请求的其他数据

下面是一些示例数据的屏幕截图

由于网站的限制,我不得不把它们放在一张图片上

表:

  • 顶部,库存销售
  • 中级,销售
  • 底部,库存
预期产出:


出纳>产品名称>单价

您可以尝试以下方法:

SELECT s.cashier, i2.prod_name, i2.unit_price 
FROM sales s
JOIN inv_sales i1
ON i1.sales_sales_id = s.sales_id
JOIN inventory i2
ON i1.inventory_prod_id = i2.prod_id
ORDER BY s.cashier,s.date;

它为每个表使用一个唯一的别名,并使用连接表的现代形式。此外,由于要求获得每个员工的销售额,我添加了一个订单,以便将员工的销售额分组。

请在问题中添加示例输入数据、预期结果和当前结果。您混合了两种联接方式,旧的联接方式(从逗号分隔的表格)和当前更常用的联接方式(与on子句联接)您缺少from中sales表的关系。此外,您应该使用order by(“每位员工”)。请看@草莓,谢谢你的提示,我不确定在这里发布的最佳方式是什么。我肯定会在以后的问题中考虑到这一点。希望到那时,我会学到更多。请原谅我还是个新手,我尝试过,逐字输入,但我遇到了一个错误。我还忘了提到我使用的是Mariadb,而不是实际的MySQL。错误1064(42000):您的SQL语法有错误;请检查与您的MariaDB服务器版本对应的手册,以了解使用near'.prod_name,i2.unit_price FROM sales s JOIN inv_sales i1 ON i1.sales_sales_id='的正确语法。在第1行,似乎我在输入查询时输入了一个错误。这正是我想要的。非常感谢您花费时间来帮忙。很高兴我能帮忙。