[英]SELECT data from many-to-many table
我正在尝试从多对多表中获取数据,但是我尝试执行的查询不起作用
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 |
+--------------------+
我正在尝试通过提供 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;
希望你能帮助我。
试试下面的 - 你已经混合了 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
您的加入不正确,请尝试以下操作。
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;
如果你有一个表来存储你 2 个表之间的链接,为什么你不这样做:
SELECT TASKS.name
FROM
TASKS
INNER JOIN USERS-TASK ON TASKS.ID = USERS-TASK.TASK_ID
WHERE
USERS-TASK.USER_ID = 1
你的加入是错误的,你从:
USERS,
TASKS,
user_task
在你加入之后:
INNER JOIN
USERS
ON user_task.UserId = USERS.id
INNER JOIN
TASKS
ON user_task.TaskId = TASKS.id
只需删除你无用的“从”就可以了
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.