MYSQL:连接两个表并使用一个随机列

时间:2016-04-20 08:05:29

标签: php mysql

我对mySql很新,我似乎无法理解我遇到的问题。我想要做的是使用一个表(LessonPlans)并将其与另一个表(图像)中的随机图像连接,但前提是该图像使用与LessonPlans相同的语言标记。只要LessonPlans中有更多输入,图像就应该继续添加。

详细说明:

我需要从 LessonPlans 以及随机图片(名称,级别目标 >名称-img )来自图片,但仅当 LessonPlans 图片都有语言时(例如英语)的共同点。只要 LessonPlans 中有行,就应该继续这样做,即使这意味着重复图像

我尝试过各种来自不同来源的解决方案,但我要么随意得到所有内容,要么重复一切。

PS。我是Stackoverflow的新手,请原谅我,如果我不是很清楚

//修改

这是表格:

LessonPlans Id Subject Language Level Aim

Images Id Name-img Language

/哈坎

3 个答案:

答案 0 :(得分: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';

答案 1 :(得分:0)

试试这个 - >>

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

答案 2 :(得分: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

上试试