У меня есть две таблицы: 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,
");
Что я хочу сделать, так это получить только отдельные записи из левой таблицы и все соответствующие записи из правой таблицы.