SELECT
*
FROM
(
SELECT
qu.job_id AS `qu_job_id` , qu.engineer_id, qu.id AS `quote_id` , jb.author, jb.job_id, jb.job_title, SUBSTRING(jb.job_description, 1, 200) AS `short_description` , jb.image_ref, jb.timestamp
FROM
jobs AS `jb`
LEFT JOIN
quotes AS `qu`
ON
qu.job_id = jb.job_id
WHERE
jb.author = " . ID . "
GROUP BY
jb.job_id
ORDER BY
jb.timestamp DESC
) AS `jobs`
LEFT JOIN
(
SELECT
COUNT(id) AS `total_replies` , job_id
FROM
quote_comments
WHERE
job_id = jobs.job_id
) AS `replies`
ON
replies.job_id = jobs.job_id
我的問題使用結果從子查詢是否有可能(以上不作爲是工作)把這個結果從第一子查詢,以防止在第二比較? (即job_id = jobs.job_id
)SQL - 另一個子查詢
問候
編輯
(這裏作爲評論有更多的空間)
SELECT
qu.engineer_id,
qu.id AS `quote_id`,
jb.author,
jb.job_id,
jb.job_title,
SUBSTRING(jb.job_description, 1, 200) AS `short_description` ,
jb.image_ref,
jb.timestamp,
count(qu.id) AS comment_count
FROM
" . JOBS . " AS `jb`
LEFT JOIN
" . QUOTES . " AS `qu`
ON
qu.job_id = jb.job_id
WHERE
jb.author = " . ID . "
GROUP BY
jb.job_id,
qu.engineer_id,
qu.id,
jb.author,
jb.job_title,
SUBSTRING(jb.job_description, 1, 200),
jb.image_ref,
jb.timestamp
ORDER BY
jb.timestamp DESC
我最初的問題是不正確略。我實際上想要得到報價的數量,而不是報價評論。
上述建議在下面看起來似乎乍一看,但它返回的工作有多個報價submited×次數與每個報價計數爲1。有任何想法嗎?
是的,它是可能的。首先,你不能在子查詢中使用ORDER BY。這是你得到的錯誤嗎? – 2012-01-27 20:06:42
它看起來像你試圖得到一份工作,得到任何工作報價(或沒有),以及作業的報價評論數。如果這是正確的,我想我知道答案。 – Hasteur 2012-01-27 20:11:37
我想要做的是從3個表中獲取信息。所有這三個在comman,job_id和author_id中都有兩個東西。我想要獲得所有工作,並且還要獲得1個查詢中每個工作收到的評論數量。 (p.s.順序工作正常) – 2012-01-27 20:11:44