объединить таблицы и запрос

0

У меня есть эти таблицы в моей схеме mysql:

posts:

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

users:

   ------------------
   userid | username

Как я могу показать только 6 записей, где: type - это аудио или видео и только для определенного имени пользователя?

  • 0
    таблицы слияния это что-то другое. Правильный термин JOIN.
Теги:
join

4 ответа

2
Лучший ответ
SELECT TOP 6 *
FROM posts
INNER JOIN users ON posts.userid = users.userid
WHERE type IN ('audio','video')
AND username = @username;

или (поскольку TOP может быть только MS SQL Server...)

SELECT *
FROM posts
INNER JOIN users ON posts.userid = users.userid
WHERE type IN ('audio','video')
AND username = @username
LIMIT 6;
0

Здесь один из способов:

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')
0
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
0
Select title, msg, type
From Users Left Join Posts on Users.userid = Posts.userid
where type in ("audio", "video")
    and username = @username
limit 6
  • 0
    Есть ли причина начинать с заглавной буквы, кроме «где», «in» и «limit»?
  • 0
    Нет, просто я был непоследователен.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню