0

MySQLデータベースの2つのテーブルのデータを結合することについて質問があります。最初に私が現在持っているものを説明し、次に私ができるだけ明確にしたいものを説明します。

データベースには、次のような2つのテーブルがあります。

Table: Subscriptions
Columns:
ID          int(11) PK AI
Klant ID    int(11) 
Mail ID     int(11) 
Status      varchar(15) 
Datum       varchar(15)

ID   Klant_ID Mail_ID Status Datum
123  6        6       90     21-03-2013
124  6        6       10     21-03-2013
125  6        5       90     21-03-2013
126  6        5       10     21-03-2013
127  6        1       90     20-03-2013
128  6        1       10     20-03-2013
129  6        2       10     21-03-2013
130  6        2       90     21-03-2013
131  6        4       90     21-03-2013
132  6        4       10     21-03-2013

と:

Table: Mail
Columns:
ID  int(11) PK AI
Content longtext 
Datum   varchar(15) 
Titel   varchar(150) 

ID  Content                 Datum       Titel
1   (alot of encoded html)  18-03-13    test
2   (alot of encoded html)  18-03-13    test2
4   (alot of encoded html)  18-03-13    alles weer testen
5   (alot of encoded html)  20-03-13    testje
6   (alot of encoded html)  21-03-13    Statusupdate week 6

現在、これら2つのクエリを使用して、テーブルからデータを選択しています。

SELECT ID, Titel FROM Mail
SELECT * FROM Subscriptions,
(SELECT MAX(ID) as ids, Mail_ID FROM Subscriptions
    WHERE Klant_ID = '".$_GET["ID"]."' GROUP BY Mail_ID) table2
WHERE ID=table2.ids

JOINを使用してクエリを取得し、htmlを使用してこのテーブルを作成できるようにします。

ここに画像の説明を入力してください

昨日初めてJOINを使用して以来、個人的にはJOINの使用経験があまりなく、簡単なJOINクエリを作成できますが、その方法がわかりません。さらに質問がある場合は、コメントで質問してください。誰かがこれで私を助けることができればそれは素晴らしいでしょう!

4

4 に答える 4

1

これは、テーブル間の単純な結合です。

SELECT Mail_ID, Titel, Status, Subscriptions.Datum FROM Subscriptions
JOIN Mail ON (Subscription.Mail_ID=Mail.ID)
    WHERE Klant_ID = '".$_GET["ID"]."' GROUP BY Mail_ID

行の順序は結合によってランダムになります。最後のデータを取得する場合は、クエリが適切です。

于 2013-03-22T09:00:06.020 に答える
1

試す:

select mail.id, mail.titel, subscriptions.status, subscriptions.datum
from mail join subscriptions on mail.id = subscriptions.mail_id
于 2013-03-22T09:00:06.207 に答える
0

Tyvm @ kolonel peteruk、@ Kaii、@ JaMaBingがあなたの答えをくれます!

あなたの助けを借りて、私は私の質問をあなたの質問と統合することができました。私はついにこのクエリを使用して動作するようになりました:

SELECT Mail.ID, Mail.Titel, Subscriptions.ID, Subscriptions.Status, Subscriptions.Datum,      Subscriptions.Mail_ID, Subscriptions.Mail_ID, Subscriptions.Klant_ID 
FROM NAW.Subscriptions
JOIN NAW.Mail 
ON Mail.ID = Subscriptions.Mail_ID, 
(SELECT MAX(Subscriptions.ID) as ids, Mail_ID 
FROM NAW.Subscriptions
WHERE Klant_ID =6  
GROUP BY Mail_ID) table2
WHERE Subscriptions.ID=table2.ids
于 2013-03-22T10:35:50.903 に答える
0
SELECT e.ID ,e.Titel,ea.Status,ea.Datum 
    FROM Mail e 
        LEFT JOIN Subscriptions ea 
            ON e.ID = ea.Mail_ID
            WHERE ea.Klant_ID = '".$_GET["ID"]."' 
            GROUP BY Mail_ID)
    ORDER BY e.ID ASC
于 2013-03-22T11:05:07.213 に答える