连接两个表并循环并重复其中一个表的列

时间:2016-04-22 10:59:11

标签: php mysql

我有两个表,LessonPlans和Images,我想一起使用,但我不能让它工作。在LessonPlans中,我将继续添加越来越多的行,但图像将只包含10个稍后将重复的图像。 EI。 LessonPlan1 = image1,LessonPlan2 = image2 ... LessonPLan10 = image10,LessonPlan11 = image1等。为了使它更好,我只想使用与LessonPlans具有相同语言的图像。

无论我现在尝试什么样的方式,我都会让Image 1重复与该字段中的行数相同的次数。我尝试过的是:

SELECT * FROM
(SELECT l.Id, l.Subject, l.Language, l.Level, l.Aim, i.`Name-img`, i.`Alt-img` 
    FROM LessonPlans l
    JOIN Images i
    ON l.Language = i.Language
    WHERE l.Language = 'English'
) a GROUP BY a.Subject  ORDER BY a.Id DESC;

有没有办法让这项工作?

我使用的表是:

LessonPlans

Id | Subject | Language | Level | Aim

图片

Id | Name-img | Language | Alt-img

1 个答案:

答案 0 :(得分:0)

将列ImageId添加到LessonPlans表。在将新数据插入LessonPlans时,您还需要根据您喜欢的逻辑插入ImageId。 然后您可以使用此查询:

select * from LessonPlans l, Images i where l.ImageId=i.Id

始终首选将所有逻辑和复杂性放在您插入新数据的部分并安排所有内容,以便选择查询是最简单的。这是因为在您的情况下,插入很少,并且在浏览器的每个页面打开时都会进行选择,因此目标是优化更频繁的操作以提高速度,而不是频繁使用。

如果你正在解决插入率高和选择率低的问题,那么逻辑就会反过来。