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

274
14 сентября 2017, 16:00

Есть 1 запрос, который получает информацию о пользователе по его username:

SELECT id, username, avatar, name, description FROM users WHERE username = :username

Есть 2 запрос, который получает количество пользователей, подписанных на текущего пользователя:

SELECT COUNT(*) FROM followers WHERE user = :username

Как я могу объединить эти запросы в один? (PHP 5.6)

Answer 1

Для MySQL сработает такой запрос

SELECT
  COUNT(*),
  u.`id`,
  u.`username`,
  u.`avatar`,
  u.`name`,
  u.`description`
FROM
  `users` u
  LEFT JOIN `followers` f ON (u.`username` = f.`user`)
WHERE
  u.`username` = :username
GROUP BY
  u.`username`
Answer 2

Попробуйте через подзапрос:

SELECT id, 
    username, 
    avatar, 
    name, 
    description,
    ifnull((SELECT COUNT(*) FROM followers WHERE user = :username), 0) as followers_count,
    ifnull((SELECT COUNT(*) FROM followers WHERE follower = :username), 0) as followings_count
FROM users 
WHERE username = :username
READ ALSO
расширения стандартных таблиц в wordpress

расширения стандартных таблиц в wordpress

Cтоит ли вносить изменения в структуру таблицы wp_posts, так как по данным добавленным полям будет идти постоянно поиск и данные поля будут присутствовать...

231
Чем отличаются расширения java и jar?

Чем отличаются расширения java и jar?

Чем отличаются расширенияjava и

238
Изменение размера элемента в JavaFX [требует правки]

Изменение размера элемента в JavaFX [требует правки]

Как можно изменить размер объекта (например кнопки) в JavaFX?

233