2

私はこの声明を持っています:

SELECT board.*,numlikes 
FROM board
LEFT JOIN (
    SELECT pins.board_id, COUNT(source_user_id) AS numlikes
    FROM likes 
    INNER JOIN pins ON pins.id = likes.pin_id 
    GROUP BY pins.board_id
) likes ON board.id = likes.board_id
WHERE who_can_tag='' 
ORDER BY numlikes DESC 
LIMIT 10

board次に、を使用して行を抽出できます".$info['board_name']."。ただし、複数の結合が苦手で、テーブルboardlikesテーブル以外に別のテーブルをこれに結合する必要があります。3 番目のテーブルはuserであり、 と一致board.user_iduser.user_idます。

このデータを使用して からユーザー名を抽出するにはどうすればよいuserですか?

まだテーブル内".$info['username']."のフィールドを検索しませんか?usernameboard

4

1 に答える 1

1

これはあなたが望むことをします:

SELECT board.*,
    `user`.username,
    numlikes 
FROM board
INNER JOIN `user` ON board.user_id = `user`.user_id
LEFT JOIN (
    SELECT pins.board_id, COUNT(source_user_id) AS numlikes
    FROM likes 
    INNER JOIN pins ON pins.id = likes.pin_id 
    GROUP BY pins.board_id
) likes ON board.id = likes.board_id
WHERE who_can_tag='' 
ORDER BY numlikes DESC 
LIMIT 10
于 2013-06-16T10:27:15.350 に答える