2017-09-11 16 views
-3

私は検索しているが、私は問題を解決しない。 私は多対多の関係を持っています。Mysql多対多PHPで選択

3テーブル:私は私のGROUPEのID = 1

Thxをのためにすべてのメールを選択する方法を知らない

groups_mail | groups_mail_j (joint table) | mails  
id, name | mail_id, groupe_id   | id, name 

+4

をご確認くださいそれと。 – Strawberry

答えて

0

質問が不明です。とにかくこれは私がその質問に基づいて理解したものです。

あなたは、3通のテーブルメール、groups_mailを持つ、あなたはすべてのテーブルを結合し、mails-> id列に基づいてすべてのレコードを取得したい

をgroups_mail_j。上記の次の

ここ
SELECT m.id mailid, m.name AS email, gm.name AS groupname, gm.id AS groupmailid 
FROM mails AS m 
INNER JOIN groups_mail_j AS gmj ON gmj.mail_id = m.id 
INNER JOIN groups_mail AS gm ON gm.id = gmj.groupe_id 
WHERE m.id = 1 

によって、私は、カスタムセレクタを使用していることを行うことができますよりも上必要な場合

。任意のセレクタ、つまりテーブルの特定の列を、そのテーブルのエイリアスを使用して使用できます。

これで、選択したグループのすべてのメールIDを表示したい場合は、次のクエリを使用します。メールIDを知っていれば、再度照会する必要がないので、mail_idを入れる必要はありません。

SELECT m.name AS email 
FROM mails AS m 
INNER JOIN groups_mail_j AS gmj ON gmj.mail_id = m.id 
INNER JOIN groups_mail AS gm ON gm.id = gmj.groupe_id 
WHERE gmj.groupe_id = 1 

ここで1ケースのことができ、ユーザの$ group_idの

にコード化されたハードでまともな初心者の本やチュートリアルを助けることができるでしょうあなたのスペルかどうかであるgroup_idのまたはgroupe_id

+0

Hummこの私のPHPコードは、あなたがundestandのためにもっと簡単です: 質問は$ getemailsですhttps://pastebin.com/HQQWrdTa – Fleeca

+0

こんにちは私は助けることができるように質問に必要な入力と出力の例を投稿してくださいあなたは良い。 –

+0

私のペーストビンに、あなたはグループができます。グループはたくさんの電子メールを持っています。 選択したグループのすべてのメールを表示したいとします。 – Fleeca