我有这个表格结构(我自己做了,你可以自由地说,如果你觉得它很糟糕并提供更好的例子) 在一个房间中可以找到几个图像,这些图像映射在表格image_room中。 Image_room看起来像
image_id | room_id
1 | 1
2 | 1
3 | 1
4 | 2
5 | 3
6 | 4
ID为1的房间包含三张图片
我从桌子上知道了guid。如何根据我在MySQL中知道的GUID号选择房间中的所有image_name?
我知道guid XXX。选择我想知道XXX在房间表中有room_id 1。我的地图表说图像1,2和3都在那个房间里。
答案 0 :(得分:1)
执行此操作的常规方法是使用明确的join
:
select i.image_name
from room r inner join
image_room ir
on r.room_id = ir.room_id inner join
image i
on ir.image_id = i.image_id
where r.guid = @GUID;
您应该将id
列声明为主键,可能是自动递增的主键,以获得更好的性能。
答案 1 :(得分:0)
尝试以下:
select image_name from image where image_id in (select image_id from image_room where room_id in (select room_id from room where room_guid = 'xxx'))