嘿人,在这里寻求帮助。
基本上我在MySQL数据库中有两个表jobs
和dates
。
每个日期按ID引用作业,有时多个日期引用单个作业。
我正在进行此查询(x
是一个变量整数):
SELECT * FROM jobs LIMIT x,50
现在我有50个工作记录的结果,我想在一个查询中检索指向这50个工作的所有日期。
如果不迭代结果并对每次迭代进行查询,如何才能完成?
希望我足够清楚:S
PS:没有设法用一点mysql结构绘制一个像样的表。
答案 0 :(得分:1)
有两种方法可以做到这一点。
使用 IN 关键字。
SELECT *
FROM dates
WHERE job_id
IN (1, 2, 3, 4, ..)
一次全部选择。
SELECT *
FROM jobs
LEFT JOIN dates
ON jobs.job_id = dates.job_id
LIMIT x, 50
这将为每个(作业,日期)组合提供一行,每个日期可能有多个作业。
答案 1 :(得分:1)
SELECT *
FROM jobs
INNER JOIN dates
ON dates.job_id = jobs.id
LIMIT x,50
这会将它限制为只有那些与它们相关的日期的作业。因此,如果您想查看可能没有关联日期的作业,请使用OUTER join:
SELECT *
FROM jobs
LEFT JOIN dates ON dates.job_id = jobs.id
LIMIT x, 50