我在尝试构建此JOIN查询时遇到了一些问题。任何帮助是极大的赞赏!谢谢!
我这里有3张桌子。 表A包含我们的“用户”。它们由id号标识。 表C包含由id号标识的位置。 表B包含表A和表C之间的连接.uid是用户的id,lid是位置的id。用户可能与多个位置相关联。
我需要构建一个查询,该查询将获取用户的id,找到与用户id相关联的所有位置并将其返回。
表A
| id | name |
-----------------------------
| 0 | steven |
-----------------------------
| 1 | etc |
-----------------------------
表B
| id | uid | lid |
-------------------------------------------
| 0 | 0 | 1 |
-------------------------------------------
| 1 | 1 | 1 |
-------------------------------------------
表C
| id | location_name |
----------------------------------
| 0 | santa monica |
----------------------------------
| 1 | hamptons |
----------------------------------
答案 0 :(得分:1)
您可以尝试以下
SELECT
A.id as user_id,
A.name as user_name,
C.location_name as location
FROM
TableA A
JOIN
TableB B ON A.id = B.uid
JOIN
TableC C ON B.lid = C.id
WHERE
A.id = 0;
答案 1 :(得分:1)
SELECT u.id, u.name, l.id, l.location_name
FROM users u
JOIN connection c
ON c.uid = u.id
JOIN locations l
ON c.lid = l.id
WHERE u.id=?
GROUP BY l.id;
答案 2 :(得分:1)
select A.name, C.location_name from B inner join A on B.uid=A.id inner join C on B.lid= C.id where A.id='".$id."' ;
此处$ id将是您输入的用户ID
答案 3 :(得分:1)
我会说你删除了表B,只有表A和表C.
表A
| id | name |
-----------------------------
| 0 | steven |
-----------------------------
| 1 | etc |
-----------------------------
表C
| id | location_name | uid |
-------------------------------------------
| 0 | santa monica | 0 |
-------------------------------------------
| 1 | hamptons | 1 |
-------------------------------------------
我提出的表C有一个引用表A的id
现在您可以查询,
select * from tableA A
inner join
tableB B on
A.id = B.uid