从相关表中选择

问题描述 投票:0回答:2

所以在我的数据库中,我有2个相关的表:这些字段是ID,名称,价格和整数,因此我知道它们是否全部出售

水果

|IDfruit| name  | price  | sold  |
|  1    |orange | 5      | 0
|  2    |apple  | 10     | 0
|  3    |grape  | 15     | 1
|  4    |lemon  | 7      | 1

主键是IDfruit

图像

|IDimage| url        | idfruit_image
| 1     | image1.png |     1      
| 2     | image2.png |     1
| 3     | image3.png |     2
| 4     | image4.png |     3    
| 5     | image5.png |     4
| 6     | image6.png |     4 
| 7     | image7.png |     4 

IDimage是主键,而idfruit_image是引用IDfruit的外键

我想要的结果是所有水果以及每个水果的第一张图像。

所以我要做的是

select fruits.*, url , idfruit_image 
from fruits,images 
where IDfruit = idfruit_image;

这将返回所有水果和每个水果的所有图像,但是我只想要每个水果的一个图像,我该如何实现呢?

如果我要从所有售出的水果中得到所有东西,而只是每个水果的第一张图片,怎么办?>

所以在我的数据库中,我有2个表相关:这些字段是ID,名称,价格和整数,因此我知道它们是否全部出售了水果| IDfruit |名称|价格|出售| 1 |橙色| 5 | 0 | 2 ...

mysql sql join greatest-n-per-group
2个回答
0
投票

使用GROUP BY每个水果获取一行,并使用聚合函数选择其中一张图像。


0
投票

我知道您想要每个水果的第一张图像,first

© www.soinside.com 2019 - 2024. All rights reserved.