2016-04-20 13 views
3

私はむしろmySqlを初めて使用しているので、私の持つ問題の周りに頭を浮かべているようです。私がしたいのは、テーブル(LessonPlans)を使用して、別のテーブル(Images)のランダムイメージと結合することですが、そのイメージにLessonPlansと同じ言語が設定されている場合に限ります。 LessonPlansからの入力が増えている限り、イメージは追加を続ける必要があります。具体的にはMYSQL:2つのテーブルを結合し、1つのテーブルからランダムな列を使用する

私は一緒に画像からランダム画像(名前-IMG)でLessonPlansから名前レベル目指すを表示する必要がありますが、唯一のLessonPlansおよびイメージは、の言語を持っています。(英語など)は共通です。 LessonPlansに行がある場合は、これが繰り返されても、イメージを繰り返すことを意味します。

私はdifferentnetソースからのあらゆる種類のソリューションを試しましたが、すべてをランダムに取得するか、すべてを繰り返します。

ps。私はStackOverflowのために新たなんだので、すみません、私は自分自身を非常に明確

//編集

しなかった場合、これはテーブルです:

LessonPlans Id Subject Language Level Aim

Images Id Name-img Language

/ホーカン

+0

でこれを試してみてください。可能であれば、サンプルo/p。 –

+0

投稿を編集しようとしました。何か意味がありますか? –

+0

@Håkan:実際に私はあなたの質問で私が理解するのを助けることができるかどうか分かりませんか? –

答えて

0

お試しください - >>

SELECT LessonPlans.Subject , LessonPlans.Level , LessonPlans.Aim , LessonPlans.language , 
     Images.Name_img 
FROM LessonPlans INNER JOIN Images 
ON LessonPlans.language=Images.language 
+0

私はその仕事をすることもできませんでした。それは単に質問をすることができません。私は今、完全に失われています... –

+0

私は画像が出てきましたが、何が起こるかは、言語ごとに一致する数だけ各画像を繰り返すことです。私は、LessonPlansの中にある行数とそれらのそれぞれのランダムなイメージを取得したいだけです。この場合、私は英語で8つのLessonPlansを持っています。これは最初のイメージの8を続けて、2番目のイメージの8を続けます。 –

0
SELECT LessonPlans.Name , LessonPlans.Level , LessonPlans.Aim , LessonPlans.language , 
     Images.img, Images.language 
FROM LessonPlans , Images 
ON LessonPlans.commonfield=Images.commonfield 
WHERE LessonPlans.language  = 'English'; 
+0

ありがとうございます。私は試しましたが、この解決策は動作しません。 –

0
SELECT * FROM 
    (SELECT l.Id, l.Subject, l.Language, i.`Name-img` 
     FROM LessonPlans l, Images i 
     WHERE l.Language = i.Language 
     ORDER BY RAND() 
    ) a 
GROUP BY a.Subject 
ORDER BY a.Id 

あなたが必要とするすべてのフィールドを使用することができます。この例はSQLFiddleで確認してください。サンプルスキーマにイメージがほとんどないため、イメージ名が繰り返されることがあります。

UPD 1:は、特定の言語を追加

SELECT * FROM 
    (SELECT l.Id, l.Subject, l.Language, i.`Name-img` 
     FROM LessonPlans l 
     JOIN Images i 
     ON l.Language = i.Language 
     WHERE l.Language = 'en' 
     ORDER BY RAND() 
    ) a 
GROUP BY a.Subject 
ORDER BY a.Id 

親切にテーブルのスキーマを投稿SQLFiddle

+0

ありがとう!それはうまくいった! 1つの言語だけを選択する方法はありますか?彼らはすべて今正しく整列していますが、もし私が英語だけを望むならば? –

+0

UPD 1をご覧ください。 – pythagor

+0

すごい!完璧に動作します!あなたはスターです@ pythagor! :) –

関連する問題