Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > Проблема в Join left


Автор: Ngaro 13.8.2010, 14:14
Код

SELECT a.id, a.autor, a.date, a.short_story, SUBSTRING(a.full_story, 1, 15) as  full_story, a.xfields, a.title, a.category, a.alt_name, a.comm_num, 
a.allow_comm, a.allow_rate, a.rating, a.vote_num, a.news_read, a.flag, a.editdate, a.editor, a.reason, a.view_edit, a.tags 
FROM " . PREFIX . "_post AS a 
LEFT JOIN dle_users.level,dle_users.rank,dle_users.clan,dle_users.profa 
ON a.autor = .name  
WHERE {$stop_list}date >= '{$year}-01-01'AND date < '{$year}-01-01' + INTERVAL 1 YEAR AND approve" . $where_date . " 
ORDER BY " . $news_sort_by . " " . $news_direction_by . " 
LIMIT " . $cstart . "," . $config['news_number']


вот sql запрос который писал проблема в том что не хочет его выполнать
ошибку пишет такую
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'dle_users.rank,dle_users.clan,dle_users.profa ON a.autor = .name where date >= ' at line 1 

Автор: skyboy 13.8.2010, 14:21
FROM table1,table2,table3 - нормальная, хоть и не совсем конкретная запись. аналог inner join ...
LEFT JOIN table1, table2 ... - так нельзя связывать. надо переделать на
Код

LEFT JOIN table1
ON <условия связывания 1>
LEFT JOIN table2
ON <условия связывания 2>
LEFT JOIN table3
ON <условия связывания 3>

Автор: Ngaro 13.8.2010, 14:46
Код

SELECT a.id, a.autor, a.date, a.short_story, SUBSTRING(a.full_story, 1, 15) as full_story, a.xfields, a.title, a.category, a.alt_name, a.comm_num, 
a.allow_comm, a.allow_rate, a.rating, a.vote_num, a.news_read, a.flag, a.editdate, a.editor, a.reason, a.view_edit, a.tags, b.level, b.rank, b.clan, b.profa 
FROM dle_post AS a 
LEFT JOIN dle_users  AS b 
ON a.autor = b.name  
where {$stop_list}date >= '{$year}-01-01'AND date < '{$year}-01-01' + INTERVAL 1 YEAR AND approve" . $where_date . " 
ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number']

вроде ошибки с sql Запросом больше нету проблема в том что перестал новости показывать 

Автор: Akina 13.8.2010, 14:51
skyboy, у него вроде бы только первые 2 таблицы линкуются, а остальные декартово на то, что получится, множатся. Но вот условие связывания помещено не в том месте. И вообще оно странное:
Код

ON a.autor = .name

не указано имя таблицы...  
smile  а может, он имел в виду, что действительно надо привязать все таблицы и типа написал "шаблон" связывания в надежде что Мускул разберётся?  smile 

PS. Хотя я вообще не понимаю, нафига нужно это связывание, если таблицы справа нигде не используются?

Автор: skyboy 13.8.2010, 16:01
Охо, я и проморгал такие подробности.
Цитата(Akina @  13.8.2010,  13:51 Найти цитируемый пост)
а может, он имел в виду, что действительно надо привязать все таблицы и типа написал "шаблон" связывания в надежде что Мускул разберётся?

по крайней мере, звучит вполне логично  smile 

Автор: Akina 13.8.2010, 16:11
Цитата(skyboy @  13.8.2010,  17:01 Найти цитируемый пост)
я и проморгал такие подробности

немудрено... а вообще за публикацию неформатированного кода надо банить путём отрывания рук.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)