我正在制作新闻源类型,我想从多个表中进行选择。我将专注于这个问题的两个表是“帖子”和“照片”。
这是我对帖子的查询:
mysql_query("
SELECT * FROM posts
WHERE toID='$id' AND state='0'
ORDER BY id DESC LIMIT 10");
我的帖子表有以下列名:
Table: posts
id toID fromID post state date
1 1 1 Aloha 0 1
2 1 1 Hello 0 3
我的照片表格如下:
Table: photos
id userID photo state date
1 1 2 0 2
2 1 6 0 4
预期结果:
Aloha
2
Hello
6
可能是这样的:
SELECT *
(SELECT * FROM posts WHERE toID=$id AND state=0) AND
(SELECT * FROM photos WHERE userID=$id AND state=0)
ORDER BY date
当它从数据库中选择它们时,它应该从哪里选择toID和userID是相同的。 state应该等于0,(0表示可见),它们应按日期排序。此外,我需要创建一个新的变量传递给我的查询,所以我可以在我的PHP中确定信息来自哪个表。最后我希望按照日期对照片进行分组,所以假设用户在30分钟内上传了20张照片,他们只返回一行。我使用php time()来存储我的日期。
答案 0 :(得分:2)
如果您想将所有帖子和照片放在一起,可以使用:
SELECT po.*, ph.* FROM posts po
LEFT JOIN photos ph
ON po.toID = ph.userID
WHERE po.state = 0
AND ph.state = 0
ORDER BY po.id DESC, ph.date DESC