このクエリが同じ結果を 2 回表示する理由。
"SELECT * from sony.bsha
inner join sony.frndreq
on sony.frndreq.from='"+email+"' or sony.frndreq.to='"+email+"'";
また、データの二重表示を止める方法を教えてください。
いくつかの共通フィールドでテーブルを結合してから、WHERE
句を使用する必要があります。
SELECT *
FROM sony.bsha
INNER JOIN sony.frndreq
ON sony.bsha.someField = sony.frndreq.someField
WHERE sony.frndreq.from='"+email+"' OR sony.frndreq.to='"+email+"' "
それでも二重の結果が得られる場合はDISTINCT
、 またはを使用しますGROUP BY
。データベーススキーマなどが与えられていないことは、これ以上言うのは難しい.
GROUP BYを使用する
"SELECT *
from sony.bsha
inner join sony.frndreq
on sony.frndreq.from='"+email+"' or sony.frndreq.to='"+email+"'
GROUP BY sony.frndreq.from
";