2010-08-26 2 views
0

В настоящее время у меня есть SQL, который должен возвращать 3 строки данных, но возвращает 6 (три строки повторяются дважды).смена левого соединения на базовое соединение

Я считаю, что это вниз к моему синтаксису и хочу, чтобы попытаться построить запрос, используя основное соединение, в настоящее время SQL выглядит так,

`function getMultiContentById($id) { 
    $query = "SELECT 
    FROM `mailers` 
    LEFT JOIN `mailer_content` ON `mailers`.`id` = `mailer_content`.`mailer_id` 
    LEFT JOIN `mailer_images` ON `mailer_content`.`id` = `mailer_images`.`content_id` 
    WHERE `mailers`.`id` = $id" 
    $result = runSelectArray($query, __FUNCTION__); 
    return $result; 
}` 

Я хочу использовать что-то вроде этого

`WHERE `mailer_content`.id = `mailers.id` 
+0

Можете ли вы разместить структуру таблицы, данные, которые вы запрашиваете, и ожидаемые результаты? –

+0

Вы пробовали DISTINCT. –

ответ

1

Просто измените ВЛЕВО, чтобы INNER на первый присоединиться, как в

$query = "SELECT 
    FROM `mailers` 
    INNER JOIN `mailer_content` ON `mailers`.`id` = `mailer_content`.`mailer_id` 
    LEFT JOIN `mailer_images` ON `mailer_content`.`id` = `mailer_images`.`content_id` 
    WHERE `mailers`.`id` = $id" 
    $result = runSelectArray($query, __FUNCTION__); 
    return $result; 

Share и наслаждайтесь.

Смежные вопросы