【发布时间】:2017-03-30 13:38:05
【问题描述】:
如何在同一个查询中多次使用一个子查询的结果集
SELECT
(
SELECT
COUNT(joa.id)
FROM
game_applied joa
INNER JOIN (
SELECT
jrmm.id
FROM
game_refer_to_member jrmm
JOIN game_refer jrr ON jrr.id = jrmm.rid
AND jrr.referby_user_id = 2551
AND jrmm. STATUS = '1'
) be ON joa.referred_by = be.id
) AS applicationcount,
(
SELECT
COUNT(joa.id)
FROM
game_applied joa
INNER JOIN (
SELECT
jrmm.id
FROM
game_refer_to_member jrmm
JOIN game_refer jrr ON jrr.id = jrmm.rid
AND jrr.referby_user_id = 2551
AND jrmm. STATUS = '1'
) bf ON joa.referred_by = bf.id
AND joa.admin_review = '3'
AND joa.rejection_reason = 'Admin rejected your game'
) AS admin_reject,
(
SELECT
COUNT(joa.id)
FROM
game_applied joa
INNER JOIN (
SELECT
jrmm.id
FROM
game_refer_to_member jrmm
JOIN game_refer jrr ON jrr.id = jrmm.rid
AND jrr.referby_user_id = 2551
AND jrmm. STATUS = '1'
) bg ON joa.referred_by = bg.id
AND joa. STATUS = '5'
AND joa.admin_review = '2'
) AS employer_reject,
(
SELECT
COUNT(joa.id)
FROM
game_applied joa
INNER JOIN (
SELECT
jrmm.id
FROM
game_refer_to_member jrmm
JOIN game_refer jrr ON jrr.id = jrmm.rid
AND jrr.referby_user_id = 2551
AND jrmm. STATUS = '1'
) bd ON joa.referred_by = bd.id
AND joa.admin_review = '1'
) AS admin_review,
(
SELECT
COUNT(joa.id)
FROM
game_applied joa
INNER JOIN (
SELECT
jrmm.id
FROM
game_refer_to_member jrmm
JOIN game_refer jrr ON jrr.id = jrmm.rid
AND jrr.referby_user_id = 2551
AND jrmm. STATUS = '1'
) bc ON joa.referred_by = bc.id
AND joa.admin_review = '5'
) AS accountmanager_review,
(
SELECT
COUNT(joa.id)
FROM
game_applied joa
INNER JOIN (
SELECT
jrmm.id
FROM
game_refer_to_member jrmm
JOIN game_refer jrr ON jrr.id = jrmm.rid
AND jrr.referby_user_id = 2551
AND jrmm. STATUS = '1'
) ba ON joa.referred_by = ba.id
AND joa.admin_review = '6'
) AS rp_review,
(
SELECT
COUNT(joa.id)
FROM
game_applied joa
INNER JOIN (
SELECT
jrmm.id
FROM
game_refer_to_member jrmm
JOIN game_refer jrr ON jrr.id = jrmm.rid
AND jrr.referby_user_id = 2551
AND jrmm. STATUS = 1
) bh ON joa.referred_by = bh.id
AND joa.admin_review = '2'
AND (
joa. STATUS = '' || joa. STATUS = 1 || joa. STATUS = 2 || joa. STATUS = 3 || joa. STATUS = 4
)
) AS other_status
FROM
game_applied ja
JOIN user_user u ON u.id = ja.applied_recruiter_id
INNER JOIN (
SELECT
jrmm.id
FROM
game_refer_to_member jrmm
JOIN game_refer jrr ON jrr.id = jrmm.rid
AND jrr.referby_user_id = 2551
AND jrmm. STATUS = '1'
) bn ON ja.referred_by = bn.id
GROUP BY
applicationcount
如何在同一个查询中多次使用一个子查询的结果集
子查询在这个查询中使用了多次到一次使用
(
SELECT
jrmm.id
FROM
game_refer_to_member jrmm
JOIN game_refer jrr ON jrr.id = jrmm.rid
AND jrr.referby_user_id = 2551
AND jrmm. STATUS = '1'
) bn ON ja.referred_by = bn.id
【问题讨论】:
标签: mysql sql select join subquery