我有一个工作表和一个任务表。 一项工作有很多任务。
我想查询特定日期的作业及其对应的任务,并且需要两个表中的所有列。
一种方法是:
SELECT * FROM Job LEFT JOIN Task ON Job.jobID=Task.jobID WHERE Job.jobDate=1530046800
这里的问题是我从作业列中获取了冗余数据。
另一种方法是将其分为两个查询,然后在服务器端使用代码进行处理。如:
SELECT * FROM Job WHERE jobDate=1530046800
和
Select Task.* from Task JOIN Job ON Task.jobID=Job.jobID WHERE Job.jobDate=1530046800
哪种方法是推荐的?还是有另一种推荐的方法?
还有,优化联接查询速度的最佳方法是在Job表上添加索引(jobID,jobDate),在Task表上添加索引(jobID)吗?