Исключить повторяющиеся записи из левой таблицы - PullRequest
0 голосов
/ 20 января 2019

У меня есть две таблицы: tbl_headings и tbl_sub_headings. tbl_sub_headings содержит несколько совпадений с tbl_headings. Я хочу запросить две таблицы и показать только имена заголовков из левой таблицы, tbl_headings и все соответствующие записи из правой таблицы, tbl_sub_headings. Так что, если tbl_headings содержал четыре записи, и каждая из них имела две подпрограммы заголовки, то tbl_sub_headings будет иметь восемь записей. Когда я запрашиваю с левым соединением, я получаю обратно восемь строк с повторяющимися записями в левой таблице, tbl_headings. Я хотел бы настроить запрос так, чтобы я получил только четыре строки на слева (может быть, как псевдоним) и все совпадения справа.

Я попробовал левое внутреннее объединение двух таблиц, используя общий столбец header_id и сгруппированный по столбцу header_id. Это все равно дает мне подходящее имя заголовка для каждой записи подзаголовка.

    $stmt = $conn->prepare("SELECT 
      tbl_headings.heading_id AS header_id,
      tbl_headings.heading_name AS header_name,
      tbl_sub_headings.sub_heading_name,
      tbl_sub_headings.key_stage_id
    FROM tbl_headings
      INNER JOIN tbl_sub_headings
        ON tbl_headings.heading_id =   tbl_sub_headings.heading_id
    WHERE tbl_sub_headings.key_stage_id = 1
    GROUP BY tbl_headings.heading_id,
    ");

Что я хочу сделать, так это получить только отдельные записи из левой таблицы и все соответствующие записи из правой таблицы.

...