0
創建一個論壇型網站,我有3個表,一個用於存儲用戶信息(用戶),一個用於原始帖子(線程),另一個用於像SO這樣的upvote系統(票)。MySql如果記錄存在內部選擇查詢
投票表有3列,id,userid和threadid。當用戶上傳一個線程時,一個記錄被插入到投票表中。當我查詢線程時,我想知道用戶是否已投票支持該線程,本質上,如果記錄存在於投票表中並且存在正確的userid和threadid。我可以在兩個查詢中做到這一點,但我認爲必須有一種方法將所有內容都集中在一起。
我目前查詢:
"SELECT t.id, t.title, t.content u.id AS uid, u.username
FROM threads t, users u
WHERE t.id = '".$userid."'
AND t.author = '".$userid."'"
如果你需要一個更好的主意,下面將查詢所需的結果只有當用戶已經upvoted。我需要查詢仍然返回,如果票表中的記錄不存在(可能返回投票值爲空?)。
"SELECT t.id, t.title, t.content u.id
AS uid, u.username v.id
FROM threads t, users u, votes v
WHERE t.id = '".$threadid."'
AND t.author = '".$userid."'
AND v.threadid = t.id
AND v.userid = '".$userid."'"
而且我是自學的(並且還在學習)的mysql和數據庫設計,所以如果有一個更好的方法/方法,如連接表,請讓我知道。謝謝。