1
把我的問題簡化成一個簡單的表單很困難,所以如果標題沒有意義,我很抱歉。在不影響返回行的情況下對JOINed列進行計數?
無論如何,現在的問題是:
$query = '
SELECT issues.*, comments.author AS commentauthor, favorites.userid AS favorited FROM issues
LEFT JOIN comments ON comments.issue = issues.id AND comments.when_posted = issues.when_updated
LEFT JOIN favorites ON favorites.ticketid = issues.id AND favorites.userid = \'' . $_SESSION['uid'] . '\'
' . $whereclause . '
ORDER BY issues.when_updated ' . $order;
不介意一個事實,即它是PHP,因爲我不要求爲PHP幫助。
的查詢檢索一堆issues
,什麼我希望做的是獲得favorites
行數已經favorites.ticketid
匹配issues.id
。我對LEFT JOIN favorites
的使用不是得到我剛剛提到的,而是爲了獲得客戶是否喜歡這個問題,因此favorites.userid AS favorited
。
我曾嘗試做以下幾點:(全部一次,我把這個在可讀性符號形式)
- 複製現有
LEFT JOIN favorites
,並從重複 - 刪除用戶ID檢查添加
, COUNT(favorites.ticketid) AS favoritescount
到SELECT
部 - 添加
AS favorited
到原始LEFT JOIN
以及改變favorites.userid
favorited.userid
到
有了這個嘗試,我的查詢最終只返回一行。