我有三个表格,我想从表格中选择,而不产生重复。
表格如下:
客户
id | name | lastName
---------------------------------------
1 | john | doe
2 | helen | keller
命令
userID列是引用John Doe的外键,因此John订购了3项。
id | userID | order
---------------------------------------
1 | 1 | pizza
2 | 1 | pasta
3 | 1 | lasagna
客户校正
userID列是引用johndoe的外键,因此John留下了5条评论。
id | userID | rating | comment
-------------------------------------------------
1 | 1 | 5/5 | was good
2 | 1 | 5/5 | excellent
3 | 1 | 4/5 | great
4 | 1 | 4/5 | great
5 | 1 | 4/5 | great
我将如何从3个表中进行选择,从中可以得到如下所示的返回结果?
id | name | lastName | order | rating
-----------------------------------------------------------------
1 | john | doe | pasta | 5/5
| | | pizza | 5/5
| | | lasagna | 4/5
| | | | 4/5
| | | | 4/5
我尝试过加入这些表,但是由于John留下了5个评论,并且只订购了3次,所以id、name、lastName和订单列会被重复的数据填满。
谢谢!
我认为您需要向CustomerRating表添加orderID字段,否则无法将项目与其评级关联。
有一些方法可以丢弃重复的评分(选择DISTINCT
,UNION
,GROUP BY
),但不清楚用户是更新现有评分还是创建新评分。你想看到的是:最后的评级还是平均评级
另一方面,我会改变你的整个设置:
>
订单
表将包含order_id
,customer_id
和其他订单相关的内容,如order_date
产品
表,将描述您的每道菜及其信息,如价格,描述等
order_products
表,其中包含字段order_id
和prduct_id
如果用户对产品进行评级,那么您的评级表至少需要产品id
,客户id
,评级值
。我还添加了ratingDate
,这样您可以通过Max(ratingDate)
我没有任何MySQL的经验,但我假设它的工作原理类似于MSSQL。
因此,您期望输出的格式是不可能的。您可以以逗号分隔的方式获取订单和评级列值
这里有一个类似的问题可能会对你有所帮助
包括基于链接的示例尝试这样的东西
选择Customers.id、Customers.name、Customers.lastName、GROUP_CONCAT(Orders.order)ordereddishs、GROUP_CONCAT(CustomerRating.rating)ratings从。。。。。查询的其余部分…
我想从具有相同user_id的两个表中获取所有数据,但我不知道要使用什么类型的联接,我想确定查询的语法。 “日程”表:
我有三张桌子:
我试图从获取数据。总共有9个表格,我必须相应地从所有表格中显示产品列表。 我考虑过使用连接,并尝试了左连接,如下所示: 这里是主表,pid是从tbl2到tbl9的所有表的。 注意:这里我在所有表上使用了来避免长查询,但是在实际的数据库操作中,只提到特定的列来提高性能。 现在实际的问题是,我没有得到所有的记录从表使用左加入。只检索中对应的每个条目的最后一行。 我使用了GROUP BY来避免重复的左连
我正在使用具有多重选择和分页功能的datatable,当我选择一行并转到另一个页面,然后返回到我所在的页面时,我选择的行将不再被选中。我使用的是primefaces 3.5、mojarra、jboss 7.1,我的bean是ViewScope。下面是我的代码: 型号:
问题内容: 产生5行(5个数组),是一行中唯一的唯一字段。重复( 在这里 重复3次。 )我如何摆脱这些重复? 编辑: 我想要和所有为每个饮料。 问题答案: 您在这里所做的称为a (尽管您是隐式执行的,因为您是从多个表中选择的)。这意味着,如果您未在WHERE子句中放置任何条件,则您将拥有这些表的 所有组合 。仅根据您的条件,您才可以将联接限制为饮料ID匹配的行。 但是,如果有X张包含此特定Drin
问题内容: 我需要编写一个选择查询,以从Spring数据存储库层的多个表中获取数据。我知道我们可以使用@Query编写自定义查询,但这仅从单个表中返回值吗? 问题答案: 您的Interface方法可以使用本机SQL从多个表中选择列,并且该方法将返回对象数组的列表: 列表中的每个项目都是对象数组,它是一行数据 您还可以创建自定义存储库实现: 如何向Spring Data JPA添加自定义方法