3

これは以前に質問されたことは知っていますが、把握するのに苦労しています。生の SQL はめったに使用しません。、および
の 3 つのテーブルがあります。SessionGroupNameGroupSessionFeedback

私はオンに参加Sessionしており 、私はコラムに参加しています。GroupFeedbackidUserGroupNameSessionidGroup

これが私のSQLコードです:

SELECT s.idSession, 
       g.name, 
       s.Assistant, 
       s.idGroup, 
       s.start, 
       s.end, 
       f.value
  FROM rempad.Session s
 INNER JOIN rempad.GroupSessionFeedback f
    ON s.idUser = f.idUser
 INNER JOIN rempad.GroupName g
    ON s.idGroup = g.idGroup
 WHERE s.start BETWEEN '2013-04-28' AND '2013-05-28'
   AND s.idUser = 22
    OR s.idUser = 23
    OR s.idUser = 24
    OR s.idUser = 26
    OR s.idUser = 27
    OR s.idUser = 28
    OR s.idUser = 42;

一意に戻したいのですidSessionsが、結合のために複数回一致しており、他にどのようなアプローチをとるべきか本当にわかりません。データベースに対して個別の呼び出しを行うこともできますが、データベースの応答が非常に遅いため、データベースを叩くのを避けようとしています。

何か案は?

前もって感謝します

4

3 に答える 3

0

これを使用してみてください:

select {.......}
from session s inner join groupsessionfeedback f inner join groupname g
on s.iduser = f.iduser and s.idgroup = g.idgroup
where {.......}

これで解決することを願っています。ただし、このクエリで他のフィルターが必要な場合は教えてください。

于 2013-08-31T18:03:13.977 に答える