我想知道是否可以选择两个表并加入第三个表
我有3张桌子:
upvotes -id(PK) -voteOn(FK) - 指向用户PK -voteBy(FK) - 指向用户PK -vote(Int) -voteAdded(Int) - unix timestamp
downvotes -id(PK) -voteOn(FK) - 指向用户PK -voteBy(FK) - 指向用户PK -vote(tinyInteger) -voteAdded(Int) - unix timestamp
用户 id(PK) 用户名
我现在要做的是〜从表格 upvotes 和 downvotes 中选择所有投票,其中voteOn = 2,然后加入表格用户 voteBy orderBy voteAdded Asc
或多或少我想获得特定用户的所有投票然后加入用户表,以便我可以获得投票人的用户名
答案 0 :(得分:0)
您可以使用数据库外观来实现此目的,这将生成在db
上触发的SQL查询// From pixels to 0-1
vPos.xy /= vResolution.xy;
// Flip Y so that 0 is top
vPos.y = (1.-vPos.y);
// Map to NDC -1,+1
vPos.xy = vPos.xy*2.-1.;
然后,您可以使用foreach
循环访问用户 $users = DB::table("users AS a")
->select(array("a.id as user_id", "a.username", "b.voteOn as upvote_on",
"b.vote as upvote", "b.voteAdded as upvote_added","c.voteOn as downvote_on", "c.vote as downvote",
"c.voteAdded as downvote_added"))
->join("upvotes AS b", "a.id", "=", "b.voteBy")
->join("downvotes AS c", "a.id", "=", "c.voteBy")
->orderBy("b.voteAdded", "asc")
->get();
那应该有用