php - 加入两个表并循环并重复其中一个表的列

标签 php mysql

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

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

有什么方法可以让它工作吗?

我使用的表格是:

类(class)计划:

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

最好将所有逻辑和复杂性放在插入新数据的部分并安排所有内容,以便选择查询尽可能简单。这是因为在您的情况下插入很少见,并且选择是在浏览器中每次打开页面时完成的,因此目标是优化更频繁的操作以提高速度,而代价是不那么频繁的操作。

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

关于php - 加入两个表并循环并重复其中一个表的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36791976/

相关文章:

php - 如何将多个查询的结果存储在不同的数组变量中

php - 每天显示的所有事件

javascript - 无法获取 AJAX 发送的 php POST

python - 类型错误 : query() argument 1 must be string or read-only buffer, 不是元组

mysql - 使用 TFDConnection 以编程方式设置 "Server"

PHP foreach - undefined variable ?

php - mysqli 不会插入

mysql - 如何将两条 SQL 语句合并为一条语句?

php - Bootstrap 在表中显示来自 mysql 的数据

MySQL 将数字转换为字母