Mysql 合并表和查询

Mysql 合并表和查询,mysql,join,Mysql,Join,我的mysql架构中有以下表: posts: --------------------------------------------- id|type | userid | title | msg | time_added users: ------------------ userid | username 如何仅显示6个条目,其中:type为音频或视频且仅针对某个用户名?这里有一种方法: Select title, msg, type From Users

我的mysql架构中有以下表:

posts:

   ---------------------------------------------
   id|type | userid | title | msg | time_added

users:

   ------------------
   userid | username
如何仅显示6个条目,其中:type为音频或视频且仅针对某个用户名?

这里有一种方法:

Select title, msg, type
From Users Left Join Posts on Users.userid = Posts.userid
where type in ("audio", "video")
    and username = @username
limit 6
SELECT TOP 6 
      P.id
     ,P.type
     ,P.userid
     ,U.username
     ,P.title
     ,P.msg
     ,P.time_added
 FROM posts P
   INNER JOIN users U ON U.userid = P.userid
 WHERE U.username = 'given user name'
    AND (P.type = 'audio' OR P.type = 'video')
或者(因为顶部可能仅限于MS SQL Server…)


除了‘where’、‘in’和‘limit’之外,是否有理由以大写字母开头?没有。只有我不一致。合并表是不同的。正确的术语是JOIN。
SELECT TOP 6 *
FROM posts
INNER JOIN users ON posts.userid = users.userid
WHERE type IN ('audio','video')
AND username = @username;
SELECT *
FROM posts
INNER JOIN users ON posts.userid = users.userid
WHERE type IN ('audio','video')
AND username = @username
LIMIT 6;
SELECT *
FROM posts p
INNER JOIN users u
  ON u.userid = p.userid
  AND u.username = 'name'
WHERE p.type IN ('audio','video')
ORDER BY time_added DESC
LIMIT 6