我有两张桌子。一个是关于财产的信息。另一个为每个属性存储3个图像。在这三个图像中,一个被标记为“主”图像。
所以我有:

Properties:
p_id    name
1   villa a
2   villa b
3   villa c
4   villa d


    Images
i_id p_id main
1    1     0
2    1     0
3    1     1
4    2     0
5    2     1
6    2     0

我需要生成一个查询,返回所有带有主映像id的属性。例如
p_id  name    i_id
1     villa a  3
2     villa b  5

我知道这需要使用LIMIT 1和join,但不知道从哪里开始,我已经尝试过使用子查询来完成这项工作,但我觉得它一定比我正在做的要简单。。。。
*我该怎么办*
使其通过“main”选择顶部1来对查询进行排序(即,如果未设置main,它仍将选择一个图像)?

最佳答案

有一种方法:

select      *
from        properties p
left join   images i
on          p.p_id = i.p_id
and         i.main = 1

如果找不到主映像,左联接将返回空映像。

关于mysql - MySQL从两个表中加入LIMIT 1,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1839024/

10-11 07:15