2017-10-24 15 views
0

すべてのメッセージをすべてのユーザーから、ユーザーがいる2つのグループから取得しようとしています。しかし、私はどのグループからどのようにすべてのメッセージを得るのか分かりません。これまでのコードです:Sqlクエリこの1人のユーザーがいるすべてのグループ内のすべてのメッセージを選択

SELECT DISTINCT m.* 
FROM `message` m 
INNER JOIN users u 
ON u.id = m.idUser 
LEFT JOIN whats_app w 
ON w.idUser= u.id 
WHERE u.id = w.idUser 

したがって、2つのグループに1人のユーザーしかいません。 ONEユーザーがいるグループ内の全員からすべてのメッセージを受け取ることはできません。

これはいくつかの単純なSQLクエリのALSの例である:

create table users (
id     int   PRIMARY KEY   NOT NULL, 
name    varchar(60) 
); 

create table whatsapp(
idUser    , 
idGroup    int 
); 

create table allGroups(
id     int   PRIMARY KEY   NOT NULL, 
name    varchar(60) 
); 

create table message_send(
id     int, 
idUser    int, 
message    text 
); 

INSERT INTO users(id, name) VALUES 
(1, 'John'), 
(2, 'Martijn'), 
(3, 'Rick'), 
(4, 'Vera'), 
(5, 'Leon'); 

INSERT INTO allGroups(id, name) VALUES 
(1, 'School'), 
(2, 'Friends'), 
(3, 'moreFriends'), 
(4, 'secretmeeting'); 

INSERT INTO message_send(id, idUser, message) VALUES 
(1, 2, 'How are you feeling today?'), 
(2, 1, 'What up?'), 
(3, 4, 'I am fine, you?'), 
(4, 1, 'hi!'); 
+0

編集あなたの質問に参加し、サンプルデータを提供し、希望します結果。 –

+0

私はあなたの質問があなたが1つの地区のすべてのユーザーを取得し、これらのユーザーがいるすべての地区を取得したいと思うかどうか分かりませんか? –

+0

あなたの予想される出力は?質問がはっきりしない – Minisha

答えて

0
create table message_send(
id     int, 
idUser    int, 
idGroup    int, 
message    text 
); 

テーブルwatsappが必要とされていません。このようなメッセージテーブルを作成し、ちょうど直接ユーザーとグループに参加するあなたが出力を取得します

select b.name,message 
from 
message_send as a, 
users as b 
where 
a.idUser=b.id 

は、同様に、グループテーブル

関連する問題