3

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

クラント:

ID  Naam           Email    Soort  Status
6   test           test     test2   
7   status test    test     test    20
8   soort test     test     test    
9   soort test 2   test2    Museum  

郵便:

ID  Content                 Datum       Titel 
1   (lots of encoded HTML)  18-03-13    test
2   (lots of encoded HTML)  18-03-13    test2
4   (lots of encoded HTML)  18-03-13    alles weer testen

(はい、私はまだたくさんテストしています^^)

これで、前のページから ID を取得する where 句を使用して「Klant」からすべてを選択する SQL クエリができました。

$strSQL = "SELECT * FROM Klant WHERE ID =  '".$_GET["ID"]."' ";  

私が欲しいのは、このクエリを次のクエリで結合することです:

SELECT ID, Titel FROM Mail; 

編集:

あなたのすべての回答とコメントから、私の質問はおそらく完全に間違っていると思い始めたと思います..どこでそれが必要なのかを説明しますが、JOINさえ必要ないかもしれません? 私は現在、次のような「Klant」からのデータを含むテーブルを持っています。

ここに画像の説明を入力

意味は、「メール」のすべての ID とタイトルを含む別のテーブルを追加することです。私の質問がわかりにくかったため、混乱を招いてしまったことをお詫び申し上げます。これが私が望むものを解決することを願っています。これに参加する必要があるかどうか、または何か他のことができるかどうか教えてください。

私はまだ学生ですが、JOIN を使用するのはこれが初めてで、これがわかりません。誰かがこれを行う方法を教えてくれるか、正しい方向に私を押してくれるなら、それは素晴らしいことです!

4

4 に答える 4

3
SELECT * FROM Klant t1
JOIN
SELECT ID, Titel FROM Mail t2
ON t1.ID = t2.ID
WHERE t1.Name  = 'test'

望ましい結果を得るには、次の手順を実行します。

SELECT * FROM Klant t1
JOIN
SELECT ID, Titel FROM Mail t2
ON t1.ID = t2.ID

また、where句を追加するだけでなく、特定の行が必要な場合:

WHERE t1.ID = 6

また

WHERE t1.Naam = 'test'

等々

于 2013-03-19T10:21:29.943 に答える
0

これは、次のクエリを使用して直接行うことができます。

select k.ID,k.Naam, k.Email,k.Soort,k.Status, m.ID,m.Titel from Klant k, Mail m where k.ID = m.ID and k.ID = '".$_GET["ID"]."'
于 2013-03-19T10:25:20.317 に答える
0

質問の例で JOIN がどのように適用されるかを確認するのは困難です。

JOIN を使用すると、関係に基づいて複数のテーブルから情報を取得できます。私が見る限り、StevePが正しく、IDがその関係を提供しない限り、テーブルには行を別の行にリンクする方法がありません。

たとえば、 klant テーブルに mail_id 列がある場合、次のことができます

SELECT *
FROM klant
JOIN mail ON klant.mail_id = mail.id

これにより、2 つのテーブル内の一致する行のペアごとに行が返されます。または、LEFT OUTER JOIN を使用して、JOIN の左側にあるテーブルからすべての行を取得し、オプションで右側の一致する行からデータを取得することもできます。

テーブルに何も結合していない場合は、CROSS JOIN を使用できます。これにより、table1 の各行と table2 のすべての行の完全なデカルトが返されます。

よく JOIN と混同されるのは、UNION です。これにより、2 つの SELECT ステートメントを記述して、両方を結合/結合した結果セットを返すことができますが、これらは各クエリで同じ列を返す必要があります (たとえば、列の代わりに NULL を選択すると、クエリがその列のデータを取得しない場合のクエリ)

于 2013-03-19T10:26:33.030 に答える
0

テーブル間で共通の ID フィールドに参加したいと思います。

select * from Klant, Mail where Klant.ID = '".$_GET["ID"]."' and Klant.ID = Mail.ID

あなたもできる

select * from Klant
  join Mail on  Mail.ID = Klant.ID
  where Klant.ID = '".$_GET["ID"]."'
于 2013-03-19T10:22:51.167 に答える