已联接表上限制为1的MySQL联接

我想联接两个表,但表1上的每条记录只能得到表2的一条记录

例如:

选择c.id、c.title、p.id作为产品标识、p.title
从类别中选择c
在c.id=p.category\U id上以p的身份加入产品

这将获得产品中的所有记录,这不是我想要的。我希望每个类别有1个[第一个]产品(我在“产品”字段中有一个sort列)

我该怎么做呢

我更喜欢类似问题中描述的另一种方法:https://stackoverflow.com/a/11885521/2215679

这种方法更好,尤其是当您需要在SELECT中显示多个字段时。要避免错误代码:1241。操作数应包含1列,或每列包含两个子选择

对于您的情况,查询应如下所示:

选择
c、 身份证,
c、 头衔,
p、 id作为产品标识,
p、 产品名称
从类别中选择c
以p的身份加入产品
p、 id=(--)主键
从产品中选择p1.id作为p1
其中c.id=p1.category\u id
按p1.id限制1订购
)

发表评论