By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
429,087 Members | 1,508 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 429,087 IT Pros & Developers. It's quick & easy.

LEFT JOIN limitations ??

P: n/a
Hello,
I have a strange problem, maybe some of you will be able to explain me
something. I use LEFT JOIN as a substitute for subselects. It's true
that many subselects can be rewriten using LEFT JOIN. I have made a
query which use LEFT JOIN statement and... when there are many LEFT
JOIN's (over 3) on the same table MySQL execute this query very long
time... few hours or more. Maybe there is something wrong with my table
structures... Are there any limitations for LEFT JOIN ??

Below the query, and table structures...

-- QUERY

SELECT
DISTINCT
_NEW.news_id,
_NNA.title,
IF(LENGTH(_NNA.content) > 250, CONCAT(SUBSTRING(_NNA.content, 1,
250),'...'), _NNA.content) AS content,
_NEW.publish_date
FROM
new_news _NEW,
new_news_names_search _NNA
LEFT JOIN new_news_categorys _CAT21 ON _CAT21.news_id = _NEW.news_id
AND _CAT21.category_id IN (21)
LEFT JOIN new_news_categorys _CAT18 ON _CAT18.news_id = _NEW.news_id
AND _CAT18.category_id IN (18)
LEFT JOIN new_news_categorys _CAT50 ON _CAT50.news_id = _NEW.news_id
AND _CAT50.category_id IN (50)
LEFT JOIN new_news_categorys _CAT1 ON _CAT1.news_id = _NEW.news_id AND
_CAT1.category_id IN (1,2,3,17,19,30,37)
WHERE
_NEW.publish_date <= NOW() AND
_NNA.news_id = _NEW.news_id AND
_NNA.language_id = '1' AND
_CAT21.news_id > 0 AND
_CAT18.news_id > 0 AND
_CAT50.news_id > 0 AND
_CAT1.news_id > 0
ORDER BY
_NEW.publish_date DESC
#
# Table structure for table 'new_news_categorys'
#

CREATE TABLE new_news_categorys (
news_id int(10) NOT NULL default '0',
category_id int(10) NOT NULL default '0',
PRIMARY KEY (news_id,category_id),
KEY category_id (category_id),
CONSTRAINT 0_1901 FOREIGN KEY (news_id) REFERENCES new_news (news_id)
ON DELETE CASCADE,
CONSTRAINT 0_1902 FOREIGN KEY (category_id) REFERENCES
set_new_news_categorys (category_id) ON DELETE CASCADE
) TYPE=InnoDB;

#
# Table structure for table 'new_news_names'
#

CREATE TABLE new_news_names (
news_id int(10) NOT NULL default '0',
language_id int(10) NOT NULL default '0',
title longtext,
content longtext,
PRIMARY KEY (news_id,language_id),
KEY news_id (news_id),
KEY language_id (language_id),
CONSTRAINT 0_1909 FOREIGN KEY (news_id) REFERENCES new_news (news_id)
ON DELETE CASCADE
) TYPE=InnoDB;

#
# Table structure for table 'new_news_names_search'
#

CREATE TABLE new_news_names_search (
news_id int(11) NOT NULL default '0',
language_id int(11) NOT NULL default '0',
title longtext,
content longtext,
PRIMARY KEY (news_id,language_id),
FULLTEXT KEY title (title,content)
) TYPE=MyISAM;

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/my***********...ie.nctu.edu.tw

Jul 19 '05 #1
Share this question for a faster answer!
Share on Google+

This discussion thread is closed

Replies have been disabled for this discussion.