Как выбрать все строки по id из второй таблицы? На данный момент он выбирает только последнюю строку из второй таблицы, если id совпадает.SQL INNER JOIN выбирает только одну, последнюю строку из второй таблицы, даже если id соответствует
Запрос:
SELECT
categories.category_id,
categories.category_name,
subcategories.subcategory_name,
categories.category_data,
categories.category_icon
FROM categories INNER JOIN subcategories ON
subcategories.category_id=categories.category_id";
Полный код:
public static function getAllCategories()
{
$database = DatabaseFactory::getFactory()->getConnection();
$sql = "
SELECT c.category_id
, c.category_name
, s.subcategory_name
, c.category_data
, c.category_icon
FROM categories c
JOIN subcategories s
ON s.category_id = c.category_id;
";
$query = $database->prepare($sql);
$query->execute();
$all_categories = array();
foreach ($query->fetchAll() as $category) {
array_walk_recursive($category, 'Filter::XSSFilter');
$all_categories[$category->category_id] = new stdClass();
$all_categories[$category->category_id]->category_id = $category->category_id;
$all_categories[$category->category_id]->category_data = $category->category_data;
$all_categories[$category->category_id]->category_icon = $category->category_icon;
$all_categories[$category->category_id]->category_name = $category->category_name;
$all_categories[$category->category_id]->subcategory_name = $category->subcategory_name;
}
return $all_categories;
}
Фото:
Это то, что я должен получить
И это то, что я есть
Первая таблица правильно выбирает все строки, но вторая таблица выбирает только последнюю строку, если ид спичек. Как выбрать все строки из второй таблицы?
Извините за плохой английский, и спасибо за любые ответы.
использовать LEFT JOIN для всех ROW в таблице слева –
это не работает. LEFT JOIN выбирает все строки из таблицы категорий, но сохраняет их для таблицы подкатегорий. Он выбирает только одну последнюю строку для второй таблицы. – Tauras
Это должно выбрать все соответствующие категории и подкатегории. Можете ли вы сделать sqlfiddle с образцами данных и объяснить, что вы ожидаете от того, что он производит? – Barmar