Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
350 views
in Technique[技术] by (71.8m points)

MySQL INNER JOIN returning duplicate results

I have the following query:

SELECT t2.* ,t3.title ,t3.locale as locale FROM DocumentsTopics t1 
INNER JOIN Documents t2 ON t1.di_name = t2.di_name 
INNER JOIN DocumentsContent t3 ON t2.di_name = t3.di_name 
WHERE locale='locale' 
AND (t3.title LIKE '%searchphrase%' OR t3.summary LIKE '%searchphrase%') ORDER BY t2.uploadDate asc 
LIMIT 0, 100

This query returns several of the records twice and even 3 times. I noticed that when I change the part in ()

from this below

 (t3.title LIKE '%searchphrase%' OR t3.summary LIKE '%searchphrase%')

to the line below, I do not get multiple results.

   (t3.title LIKE '%searchphrase%')

But I do need my query to check in more then one field.

Please help


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
try as below:
SELECT t2.* ,t3.title ,t3.locale as locale FROM DocumentsTopics t1 
INNER JOIN Documents t2 ON t1.di_name = t2.di_name 
INNER JOIN DocumentsContent t3 ON t2.di_name = t3.di_name 
WHERE locale='locale' 
AND (t3.title LIKE '%searchphrase%' AND t3.summary LIKE '%searchphrase%') ORDER BY t2.uploadDate asc 
LIMIT 0, 100

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...