изменение левого соединения на основное соединение

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.
Теги:
join
left-join
relational-database

1 ответ

1

Просто измените LEFT на 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; 

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню