Php 使多表的mySQL查询复杂化
我有桌子:Php 使多表的mySQL查询复杂化,php,mysql,sql,Php,Mysql,Sql,我有桌子: |**USER**| |--------| | _id | | name | ---------- 下一步: 下一步: 我所能做的就是提取如下数据: |**USER**|**PHOTO**|**SEEN**| |--------|---------|--------| | 1 | 100 | 0 | | 2 | 100 | 0 | ----------------------------- 我的问题:有没有办法提取
|**USER**|
|--------|
| _id |
| name |
----------
下一步:
下一步:
我所能做的就是提取如下数据:
|**USER**|**PHOTO**|**SEEN**|
|--------|---------|--------|
| 1 | 100 | 0 |
| 2 | 100 | 0 |
-----------------------------
我的问题:有没有办法提取:
|**USER**|**PHOTO**|**SEEN**|
|--------|---------|--------|
| name | 100 | 0 |
| name_2 | 100 | 0 |
-----------------------------
在本表中:
用户-指投票的用户
照片-指用户投票的照片,但必须是id为2的用户的照片(例如)
所见-仅指该行
想象功能:
function get_new_votes($myID){
....
}
有什么帮助吗
编辑:
例如:
USER
_id | name
----------------------
1 | random name
2 | different name
PHOTO
_id | user
-----------------
100 | 1
RATING
user | photo | seen
------------------------------
2 | 100 | 0
我想提取上传用户_id=1的所有带有照片的记录
different name | 100 | 0
您可以使用SQL中的
内部联接来执行此操作:
SELECT u.name, r.photo, r.seen
FROM rating AS r
INNER JOIN user AS u
ON r.user = u._id
INNER JOIN photo AS p
ON r.photo = p._id
WHERE p.user = <userId>
选择u.name、r.photo、r.seen
从评级为r
内部连接用户为u
在r.user=u.\u id上
内部连接照片为p
在r.photo=p.\U id上
其中p.user=
获取当前提取数据的代码是什么样子的?从评级r中选择r.user、r.photo、r.seen,其中r.photo=p._id和p.user=u._id和u._id='$myId'抱歉,这不是我想要的。请看我的帖子,最后就是我想要的:)
different name | 100 | 0
SELECT u.name, r.photo, r.seen
FROM rating AS r
INNER JOIN user AS u
ON r.user = u._id
INNER JOIN photo AS p
ON r.photo = p._id
WHERE p.user = <userId>