[英]SELECT data from many-to-many table
I'm trying to get data from a many-to-many table, but the query that I try to do that doesn't work我正在尝试从多对多表中获取数据,但是我尝试执行的查询不起作用
USERS TABLE
+-----------+
| ID | NAME |
+-----------+
| 1 | dani |
+-----------+
| 2 | john |
+-----------+
TASKS TABLE
+------------+
| ID | NAME |
+------------+
| 1 | learn |
+------------+
| 2 | play |
+------------+
| 3 | eat |
+------------+
USERS-TASK TABLE (MANY-TO-MANY)
+--------------------+
| USER_ID | TASK_ID |
+--------------------+
| 1 | 1 |
+--------------------+
| 1 | 2 |
+--------------------+
| 2 | 1 |
+--------------------+
I'm trying to get the tasks for USER_ID 2 which is 1 record, or USER_ID 1 which is 2 records by supplying the ID, but the query doesn't work...我正在尝试通过提供 ID 来获取 USER_ID 2 (即 1 条记录)或 USER_ID 1 (即 2 条记录)的任务,但查询不起作用...
SELECT TASKS.name
FROM
USERS,
TASKS,
user_task
INNER JOIN
USERS
ON user_task.UserId = USERS.id
INNER JOIN
TASKS
ON user_task.TaskId = TASKS.id
WHERE USERS.id = 1;
Hope you can help me with that.希望你能帮助我。
Try the below - you've mixed JOIN试试下面的 - 你已经混合了 JOIN
SELECT TASKS.name
FROM user_task
INNER JOIN
USERS
ON user_task.UserId = USERS.id
INNER JOIN
TASKS
ON user_task.TaskId = TASKS.id
WHERE USERS.id = 1
Your join in incorrect, try the following.您的加入不正确,请尝试以下操作。
SELECT
t.name
FROM user_task ut
INNER JOIN USERS u
ON ut.UserId = u.id
INNER JOIN TASKS t
ON ut.TaskId = t.id
WHERE USERS.id = 1;
If you have an table who store you link between you 2 table, why you dont do that:如果你有一个表来存储你 2 个表之间的链接,为什么你不这样做:
SELECT TASKS.name
FROM
TASKS
INNER JOIN USERS-TASK ON TASKS.ID = USERS-TASK.TASK_ID
WHERE
USERS-TASK.USER_ID = 1
Your join are wrong, you made multi from:你的加入是错误的,你从:
USERS,
TASKS,
user_task
And after you made your join:在你加入之后:
INNER JOIN
USERS
ON user_task.UserId = USERS.id
INNER JOIN
TASKS
ON user_task.TaskId = TASKS.id
Just remove your useless "from" and it will be ok只需删除你无用的“从”就可以了
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.