Пожалуйста, помогите мне структурировать MySQL запрос
У меня есть 2 таблицы, # _ udjacomment И # _content
В настоящее время у меня есть запрос:
$query = "SELECT udja.id";
if( $include_author == 1 ) $query .= ", udja.full_name";
if( $include_date == 1 ) $query .= ", udja.time_added";
if( $include_comment == 1 ) $query .= ", if(CHAR_LENGTH(udja.content) > ".$content_number_of_characters.", SUBSTR(udja.content, 1, ".$content_number_of_characters."), udja.content) AS content";
if( $include_link_to_comment == 1 ){
$query .= ", CASE WHEN LOCATE('com_content:', udja.comment_url) > 0
THEN CONCAT(SUBSTRING_INDEX(udja.comment_url,':',-1),'-', com_content.alias, '.html')
ELSE udja.comment_url END AS comment_url";
}
$query .= " FROM #__udjacomments AS udja, #__content AS com_content WHERE udja.is_published = 1 AND com_content.id = SUBSTRING_INDEX(udja.comment_url,':',-1) AND com_content.checked_out = 0 ORDER by udja.id DESC limit ".$number_of_comments;
Но я не получаю правильных результатов. Если я перестаю пытаться получить доступ из таблицы #__content AS com_content, то я получаю результаты для #__udjacomment AS udja правильно
Итак, я думаю, я спрашиваю, как можно указать и включить ограничение, что я хочу поле com_content.alias WHERE com_content.id = SUBSTRING_INDEX(udja.comment_url,':',-1)
В некоторых случаях udja.comment_url будет иметь такой формат com_content: 22, com_content: 19
и в других случаях, udja.comment_url будет иметь строку, похожую на word-word-another-word
именно поэтому у меня есть более обширное утверждение внутри условного if ($ include_link_to_comment == 1)
ОБНОВЛЕНИЕ: ЗАКЛЮЧИТЕЛЬНЫЙ ЗАПРОС СМОТРЕЛ, КАК ЭТО (Я РЕАЛИЗОВАЛ, ЧТО РЕСПОНДЕР ПРЕДЛАГАЛ И ИЗМЕНИЛ, ЗАЯВЛЕНИЕ ПО ДЕЛАМ И ГДЕ ЗАЯВЛЕНИЕ)
$query = "SELECT udja.id";
if( $include_author == 1 ) $query .= ", udja.full_name";
if( $include_date == 1 ) $query .= ", udja.time_added";
if( $include_comment == 1 ) $query .= ", if(CHAR_LENGTH(udja.content) > ".$content_number_of_characters.", SUBSTR(udja.content, 1, ".$content_number_of_characters."), udja.content) AS content";
if( $include_link_to_comment == 1 ){
$query .= ", CASE
WHEN LOCATE('com_content:', udja.comment_url)<>0
THEN CONCAT(SUBSTRING_INDEX(udja.comment_url,':',-1),'-', com_content.alias, '.html')
ELSE udja.comment_url
END AS comment_url";
}
// THEN CONCAT(SUBSTRING_INDEX(udja.comment_url,':',-1),'-', com_content.alias, '.html')
$query .= " FROM #__udjacomments AS udja
LEFT JOIN #__content AS com_content
ON com_content.id = SUBSTRING_INDEX(udja.comment_url,':',-1)
WHERE udja.is_published = 1 ORDER by udja.id DESC limit ".$number_of_comments;