這是我的查詢:查詢給出重複結果?
SELECT b.id,b.body FROM btin b
INNER JOIN nwork n ON (n.mem_id = b.mem_id)
WHERE b.parentid = '0'
AND ('401' IN (n.frd_id, b.mem_id))
ORDER BY b.date DESC
LIMIT 20 OFFSET 0
的問題是它的印刷重複的結果。 如何優化這一
請幫助 感謝
這是我的查詢:查詢給出重複結果?
SELECT b.id,b.body FROM btin b
INNER JOIN nwork n ON (n.mem_id = b.mem_id)
WHERE b.parentid = '0'
AND ('401' IN (n.frd_id, b.mem_id))
ORDER BY b.date DESC
LIMIT 20 OFFSET 0
的問題是它的印刷重複的結果。 如何優化這一
請幫助 感謝
三種方式來解決這個(基本上你有nwork超過1行):
SELECT distinct b.id,b.body FROM btin b
INNER JOIN nwork n ON (n.mem_id = b.mem_id)
WHERE b.parentid = '0'
AND ('401' IN (n.frd_id, b.mem_id))
ORDER BY b.date DESC
LIMIT 20 OFFSET 0
SELECT b.id,b.body
FROM btin b
Where b.id in (SELECT b.id FROM btin b INNER JOIN nwork n ON (n.mem_id = b.mem_id)
WHERE b.parentid = '0' AND ('401' IN (n.frd_id, b.mem_id)))
ORDER BY b.date DESC
LIMIT 20 OFFSET 0
SELECT b.id,b.body FROM btin b
INNER JOIN nwork n ON (n.mem_id = b.mem_id)
WHERE b.parentid = '0'
AND ('401' IN (n.frd_id, b.mem_id))
Group by b.id, b.body, b.date
ORDER BY b.date DESC
LIMIT 20 OFFSET 0
如果你嘗試:
SELECT DISTINCT b.id,b.body FROM btin b
....
會發生什麼?
嘗試要麼
SELECT DISTINCT .......
OR
SELECT b.id,b.body FROM btin b
INNER JOIN nwork n ON (n.mem_id = b.mem_id)
WHERE b.parentid = '0'
AND ('401' IN (n.frd_id, b.mem_id))
GROUP BY b.id
ORDER BY b.date DESC
LIMIT 20 OFFSET 0
使用GROUP BY而不是:
SELECT b.id,b.body FROM btin b
INNER JOIN nwork n ON (n.mem_id = b.mem_id)
WHERE b.parentid = '0'
AND ('401' IN (n.frd_id, b.mem_id))
GROUP BY b.id
ORDER BY b.date DESC
LIMIT 20 OFFSET 0
感謝man'arif'現在我的查詢運行異常快 – Sparkx