无法通过连接访问关系的MySQL查询

无法通过连接访问关系的MySQL查询,mysql,sql,join,left-join,inner-join,Mysql,Sql,Join,Left Join,Inner Join,我有以下MySQL表: +--------------------+----------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------------+----------+------+-----+---------+----------------+ | id

我有以下MySQL表:

+--------------------+----------+------+-----+---------+----------------+
| Field              | Type     | Null | Key | Default | Extra          |
+--------------------+----------+------+-----+---------+----------------+
| id                 | int(11)  | NO   | PRI | NULL    | auto_increment |
| firstName          | longtext | NO   |     | NULL    |                |
| lastName           | longtext | NO   |     | NULL    |                |
| username           | longtext | NO   |     | NULL    |                |
+--------------------+----------+------+-----+---------+----------------+
以及:

我有两个条件。我在第二个表中有一个开始日期和结束日期,我想要从一个特定的用户那里得到数据,我只需要通过第一个表的用户名来验证。看起来是这样的:username is known>我将获取用户的id外键>现在我可以使用这个外键从第二个表中获取特定于用户的数据。我开始我的MySQL查询,它看起来像这样:

SELECT date, duration, educationDepartment, completedtasks FROM programm_completedtask WHERE date BETWEEN "2014-04-07" AND "2014-04-11";
但是,我现在如何使其特定于用户?重要提示:我只想要一个MySQL查询、php或类似的东西对我没有帮助://p>类似的东西

挑选 表2.1用户名, 表1.1日期, 表1.1持续时间, 表1.教育部, 表1.1完成的任务 来自表1 表2.id=表1.trainer\u id上的左连接表2 哪里 表1.2014-04-07和2014-04-11之间的日期和 表1.username='someuser'

像这样的

挑选 表2.1用户名, 表1.1日期, 表1.1持续时间, 表1.教育部, 表1.1完成的任务 来自表1 表2.id=表1.trainer\u id上的左连接表2 哪里 表1.2014-04-07和2014-04-11之间的日期和 表1.username='someuser'

像这样的

挑选 表2.1用户名, 表1.1日期, 表1.1持续时间, 表1.教育部, 表1.1完成的任务 来自表1 表2.id=表1.trainer\u id上的左连接表2 哪里 表1.2014-04-07和2014-04-11之间的日期和 表1.username='someuser'

像这样的

挑选 表2.1用户名, 表1.1日期, 表1.1持续时间, 表1.教育部, 表1.1完成的任务 来自表1 表2.id=表1.trainer\u id上的左连接表2 哪里 表1.2014-04-07和2014-04-11之间的日期和
表1.username='someuser'

这将结果限制为一个特定用户:

SELECT date, duration, educationDepartment, completedtasks 
FROM programm_completedtask 
WHERE date BETWEEN '2014-04-07' AND '2014-04-11'
AND trainee_id = (select id from users where username = 'XYZ');

这将结果限制为一个特定用户:

SELECT date, duration, educationDepartment, completedtasks 
FROM programm_completedtask 
WHERE date BETWEEN '2014-04-07' AND '2014-04-11'
AND trainee_id = (select id from users where username = 'XYZ');

这将结果限制为一个特定用户:

SELECT date, duration, educationDepartment, completedtasks 
FROM programm_completedtask 
WHERE date BETWEEN '2014-04-07' AND '2014-04-11'
AND trainee_id = (select id from users where username = 'XYZ');

这将结果限制为一个特定用户:

SELECT date, duration, educationDepartment, completedtasks 
FROM programm_completedtask 
WHERE date BETWEEN '2014-04-07' AND '2014-04-11'
AND trainee_id = (select id from users where username = 'XYZ');

如果要从两个表中获得结果,应使用内部联接:


如果要从两个表中获得结果,应使用内部联接:


如果要从两个表中获得结果,应使用内部联接:


如果要从两个表中获得结果,应使用内部联接:


成功了!我几乎完全尝试了您所做的xP我只是没有在第二个select语句之前和之后设置:DThat worked!我几乎完全尝试了您所做的xP我只是没有在第二个select语句之前和之后设置:DThat worked!我几乎完全尝试了您所做的xP我只是没有在第二个select语句之前和之后设置:DThat worked!我几乎完全尝试了你所做的xP我只是没有在第二个select语句之前和之后设置:D