Oi需要簡單加入幫助
正確的問題。
SELECT *,t.id AS threadid FROM threads t
LEFT JOIN players p on p.id = t.last_poster
WHERE t.boardid = $boardid
我在線程調用posterid
和lastposterid
兩個字段。哪些是線索起始者/最後一張海報的ID。我想要做的是從玩家桌上獲得他們的名字。
但是如何?
Oi需要簡單加入幫助
正確的問題。
SELECT *,t.id AS threadid FROM threads t
LEFT JOIN players p on p.id = t.last_poster
WHERE t.boardid = $boardid
我在線程調用posterid
和lastposterid
兩個字段。哪些是線索起始者/最後一張海報的ID。我想要做的是從玩家桌上獲得他們的名字。
但是如何?
你可以加入到同一個表兩次,給表不同的別名。
這假定始終會有第一張和最後一張海報,如果是這種情況,那麼您需要INNER JOIN
而不是LEFT JOIN
,則需要更改select語句以獲取相關字段。
SELECT t.id AS threadid, playerFirst.name AS FirstPoster, playerLast.name as LastPoster
FROM threads t
INNER JOIN
players playerFirst ON playerFirst.id = t.posterid
INNER JOIN
players playerLast ON playerLast.id = t.lastposterid
你只需要加入到你的球員表兩次,就像這樣。
SELECT
threads.*,
starterPlayer.*,
lastPosterPlayer.*
FROM
threads
LEFT OUTER JOIN
players starterPlayer
ON
starterPlayer.id = threads.posterid
LEFT OUTER JOIN
players lastPosterPlayer
ON
lastPosterPlayer.id = threads.lastposterid
......怎麼
SELECT *,
(SELECT name
FROM players
WHERE players.id = threads.posterid) AS poster,
(SELECT name
FROM players
WHERE players.id = threads.lastposterid) AS last_poster
FROM threads;