好的,所以我想在我的網站上添加新聞提要。我有3個名爲Users,Follow和Posts的表。基本用戶數據進入用戶表,誰在追蹤存儲在關注表中的用戶以及用戶帖子進入帖子的內容。現在,我知道如何從數據庫表中選擇每篇文章,並使用WHERE子句限制它。但是,我如何編寫我的查詢來選擇僅來自用戶的所有帖子,並按照DESC日期顯示它們?謝謝。在SQL查詢中使用數組
-1
A
回答
1
下面是你一個總體佈局,使三個表像你所說,我在下面列出只是作爲一個例子
[TABLES]
- 用戶
- 追隨者
- 帖子
在用戶表中,你至少應該有如userid(自動遞增值/首要的關鍵)。
追隨者表應該有類似於userid的東西,它將與用戶表userid相匹配,後者列也將具有用戶表中追隨者的id#。
然後對於你的文章表,你會想擁有userid,所以當每個帖子被創建時,它將具有來自users表的id。
然後,你需要做的是這樣的:你如何獲得用戶ID摸不着頭腦
SELECT p.*
FROM posts AS p
WHERE p.userid IN (SELECT followid FROM followers WHERE userid = ###)
ORDER BY p.date DESC
現在,它真的取決於。如果您在登錄後通過會話傳遞用戶標識(類似於Facebook),則可以將userid = ###更改爲類似於userid =「。$ _ SESSION ['userid']」的內容。但是,這又取決於你如何傳遞用戶ID,但上面的內容至少應該讓你開始。
確保將索引放在用戶標識和followid列上,這樣當表格變大時,它會快速完成連接。
0
到@巴蒂爾的回答另一種方法是使用JOIN運算符:
'SELECT p.* // I prefer to name all the fields, but for brevity's sake I'll use the shorthand
FROM Posts AS p
INNER JOIN Follow AS f ON p.userid = f.followid
WHERE f.userid = '.$selectedUserID.'
ORDER BY p.date DESC;'
對於inputed用戶ID($ selectedUserID),它會發現所有的用戶ID,他們遵循的人的(後續ID匹配在Follow x-ref表上的用戶ID),然後按日期從降序排列查找帖子表中的各自帖子。如果他們沒有關注任何人或者他們關注的人沒有帖子,它將返回空。
我也希望我不需要提醒您清理輸入到數據庫並將輸出轉義到網絡。
這是你在找什麼?
相關問題
- 1. 在數組sql查詢
- 2. 使用組的SQL查詢
- 3. 使用數組列表的sql查詢
- 4. 使用Ruby數組的SQL查詢IN
- 5. 在SQL查詢中使用%
- 6. 使用{在SQL查詢中
- 7. Bash:在數組中存儲sql查詢
- 8. 在SQL查詢中分組計數
- 9. SQL是在數組查詢中
- 10. 在mysql中使用php數組查詢
- 11. 在php查詢中使用數組?
- 12. 使用Postgres JSONB查詢查詢數組中的數組
- 13. 在XSLT 2.0 SQL查詢中使用查詢字符串參數
- 14. 在SQL查詢中使用參數與子查詢
- 15. sql在sql子查詢中使用Fieldvalue
- 16. SQL查詢組數據
- 17. SQL查詢計數各組
- 18. 帶數組的SQL查詢
- 19. SQL Server查詢JSON數組
- 20. SQL查詢組
- 21. SQL查詢組
- 22. SQL查詢組
- 23. SQL查詢組
- 24. SQL查詢組
- 25. 如何在SQL查詢中使用SQL查詢
- 26. 在一個SQL查詢中使用多個SQL查詢結果
- 27. 參數查詢sql中的sql查詢
- 28. 查詢使用數組
- 29. SQL查詢中使用GROUP_CONCAT()函數
- 30. 用於分組數據的SQL查詢
最好爲這類問題展示你的模式。另外,您嘗試過哪些查詢?你有沒有接近理想的結果? – 2012-04-25 18:26:32
你嘗試過的一些事情可能會幫助你找到一個很好的答案 – 2012-04-25 18:26:58