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


Joining two tables and loop and repeat through on column of one of them

我有两个表,LessonPlans和Images,我想一起使用,但我无法让它工作。在课程计划中,我将继续添加越来越多的行,但图像将只包含 10 个稍后将重复的图像。ei.课程计划1=图像1,课程计划2=图像2...课程PLan10=图像10,课程计划11=图像1等。为了使它变得更好,我只想使用与课程计划具有相同语言的图像。

无论我现在尝试哪种方式,我都会让图像 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;

有什么办法可以做到这一点吗?

我使用的表格是:

课程计划

Id | Subject | Language | Level | Aim

图片

Id | Name-img | Language | Alt-img

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

select * from LessonPlans l, Images i where l.ImageId=i.Id
始终最好将所有

逻辑和复杂性放在插入新数据的部分并安排所有内容,以便选择查询尽可能简单。这是因为在您的情况下,插入很少,并且在浏览器中每次打开页面时都会进行选择,因此目标是以降低频率来优化更频繁的操作以提高速度。

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