php - Mysql - 从多个表中选择而不产生重复数据

标签 php mysql select join

<分区>

我有三个表,我想从表中选择而不产生重复。

表格如下:

客户

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 列是引用 John Doe 的外键,因此 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

我尝试加入这些表,但由于约翰留下了 5 条评论并且只订购了 3 次,id、name、lastName 和 order 列填满了重复数据。

谢谢!

最佳答案

我没有任何使用 MySQL 的经验,但我认为它的工作方式类似于 MSSQL。

所以您期望的输出格式是不可能的。您可以将订单和评级列值以逗号分隔

Here是类似的问题,可能对您有帮助

包括基于链接的示例 尝试这样的事情

SELECT Customers.id, Customers.name, Customers.lastName, GROUP_CONCAT(Orders.order) OrderedDishes, GROUP_CONCAT(CustomerRating.rating) RatingsGiven 从 ..... 剩下的查询......

关于php - Mysql - 从多个表中选择而不产生重复数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27340531/

相关文章:

mysql通过参数关系选择数据

mysql - 仅选择表中存在的所有记录一次

php - 正则表达式 $1、$2 等

php - 在列中设置唯一值,如果不唯一,则将其他值向下移动

php - 整数相加奇怪的结果

python - MySQL 拒绝远程连接

php - 文本框内容添加到 MySQL 数据库,然后显示在 PHP/HTML 文件中

mysql - 无法为庞大的数据集添加 FULLTEXT 索引的原因是什么?

mysql - 如何在MySQL中显示从未批准过订单的员工

mysql - 在 MYSQL 中使用 SELECT 语句中的变量进行计算?