bu deneyin:
select h.*
from category c
inner join (select * from hotels h where c.id = h.catid limit 3) h
order by h.catid, h.hid
Bu MySQL geçerli sözdizimi olup olmadığını merak ediyorum ...
Değilse, sen deneyebilirsiniz: strike>
select h.*
from category c
inner join hotels h on (c.id = h.catid)
where h.hid in (select h2.hid from hotels h2 where h2.catid = c.id limit 3)
3. girişimi:
select h.*
from category c
inner join hotels h on (c.id = h.catid)
where exists (select * from (select h2.hid from hotels h2 where h2.catid = c.id limit 3) h3 where h3.hid = h.hid)
Tamam burada sadece düz çirkin olan başka bir girişimde bulunuyor:
select * from hotels h
where h.hid <=
(select min(h1.hid)
from hotels h1
where h1.catid = h.catid
and h1.hid > (select min(h2.hid)
from hotels h2
where h2.catid = h1.catid
and h2.hid > (select min(h3.hid)
from hotels h3
where h3.catid = h2.catid)
)
)
Umarım işe yarar. Olsa, umarım size çalışmak, ya da belki de başkalarının bu sorunu çözmek için nasıl fikirler verebilir şey fikir verecektir vermezse. En azından işe yaramazsa ne görmek için kullanılabilir.