ms access 2003 случайная запись в соединении - PullRequest
1 голос
/ 10 августа 2011

Я пытаюсь получить случайную запись из объединения, но не могу заставить ее работать! Есть идеи? Используется Microsoft Access 2003.

table = members
===============
memberID int
name varchar

table = testimonials
====================
testimonialID int
memberID int
content memo

select m.*, (SELECT t.content from testimonials t where t.memberID=m.memberID ORDER BY rnd(t.testimonialID)) as testimonialtext
FROM members m;

Мне в основном нужны записи каждого участника и одно случайное свидетельство для этого участника. Я также должен добавить, что я тоже попробовал это в соединении ...

select m.*, t.content FROM members m
INNER JOIN testimonials t ON m.memberID=t.memberID
ORDER BY rnd(t.testimonialID)

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 10 августа 2011

попытаться ограничить с помощью предложения TOP

select m.*, (SELECT top 1 t.content from testimonials t where t.memberID=m.memberID ORDER BY rnd(t.testimonialID)) as testimonialtext
FROM members m;

хорошо, тогда мы можем сделать что-то вроде:

select 
  m.*, 
  t3.content
FROM 
  members m, 
   (select 
      top 1 t.testimonialID, 
    from 
      testimonials t 
    where 
      t.memberID=m.memberID 
    order by 
      rnd(t.testimonialID)
    ) t2,
   testimonials t3 
where
  t3.testimonialID = t2.testimonialID;
...