Откуда берется значение null?
0
У меня 2 таблицы movie и descriptions. У них равное количество строк, но когда я использую LEFT JOIN, последняя строка все равно получается со значением NULL. Почему?
2 ответов
0
Будет null, когда нет совпадений при соединении таблиц. Без SQL-дампа и полного кода более полно не смогу подсказать.
0
-- phpMyAdmin SQL Dump
-- version 4.9.0.1
-- https://www.phpmyadmin.net/
--
-- Хост: 127.0.0.1
-- Время создания: Окт 01 2019 г., 19:31
-- Версия сервера: 10.4.6-MariaDB
-- Версия PHP: 7.3.9
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";
--
-- База данных: `kinomonster`
--
-- --------------------------------------------------------
--
-- Структура таблицы `categories`
--
DROP TABLE IF EXISTS `categories`;
CREATE TABLE `categories` (
`id` tinyint(4) NOT NULL,
`category` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- ССЫЛКИ ТАБЛИЦЫ `categories`:
--
--
-- Дамп данных таблицы `categories`
--
INSERT INTO `categories` (`id`, `category`) VALUES(1, 'Фильмы');
INSERT INTO `categories` (`id`, `category`) VALUES(2, 'Сериалы');
-- --------------------------------------------------------
--
-- Структура таблицы `descriptions`
--
DROP TABLE IF EXISTS `descriptions`;
CREATE TABLE `descriptions` (
`id` tinyint(5) NOT NULL,
`description` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- ССЫЛКИ ТАБЛИЦЫ `descriptions`:
--
--
-- Дамп данных таблицы `descriptions`
--
INSERT INTO `descriptions` (`id`, `description`) VALUES(1, 'Описание к фильму Матрица');
INSERT INTO `descriptions` (`id`, `description`) VALUES(2, 'Описание к фильму Интерстеллар');
INSERT INTO `descriptions` (`id`, `description`) VALUES(3, 'Описание к фильму Безумный МАКС');
INSERT INTO `descriptions` (`id`, `description`) VALUES(4, 'Описание к фильму Во все тяжкие');
-- --------------------------------------------------------
--
-- Структура таблицы `movie`
--
DROP TABLE IF EXISTS `movie`;
CREATE TABLE `movie` (
`id` int(5) NOT NULL,
`name` varchar(255) NOT NULL,
`description_id` tinyint(5) NOT NULL,
`year` int(4) NOT NULL,
`add_date` datetime NOT NULL,
`category_id` tinyint(4) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- ССЫЛКИ ТАБЛИЦЫ `movie`:
--
--
-- Дамп данных таблицы `movie`
--
INSERT INTO `movie` (`id`, `name`, `description_id`, `year`, `add_date`, `category_id`) VALUES(1, 'Матрица', 1, 1999, '2019-09-20 21:04:00', 1);
INSERT INTO `movie` (`id`, `name`, `description_id`, `year`, `add_date`, `category_id`) VALUES(2, 'Интерсталлер', 2, 2010, '2019-09-21 13:21:00', 1);
INSERT INTO `movie` (`id`, `name`, `description_id`, `year`, `add_date`, `category_id`) VALUES(3, 'Безумный Макс', 3, 1990, '2019-09-21 21:50:30', 1);
INSERT INTO `movie` (`id`, `name`, `description_id`, `year`, `add_date`, `category_id`) VALUES(6, 'Во все тяжкие', 4, 2007, '2019-09-29 21:50:30', 2);
-- --------------------------------------------------------
--
-- Структура таблицы `music`
--
DROP TABLE IF EXISTS `music`;
CREATE TABLE `music` (
`id` int(5) NOT NULL,
`name` varchar(255) NOT NULL,
`author` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- ССЫЛКИ ТАБЛИЦЫ `music`:
--
--
-- Дамп данных таблицы `music`
--
INSERT INTO `music` (`id`, `name`, `author`) VALUES(1, 'Проклятый старый дом ', 'КИШ');
INSERT INTO `music` (`id`, `name`, `author`) VALUES(2, 'Лесник', 'КИШ');
INSERT INTO `music` (`id`, `name`, `author`) VALUES(4, 'Отражение ', 'КИШ');
INSERT INTO `music` (`id`, `name`, `author`) VALUES(11, 'Кузнец', 'КИШ');
--
-- Индексы сохранённых таблиц
--
--
-- Индексы таблицы `categories`
--
ALTER TABLE `categories`
ADD PRIMARY KEY (`id`);
--
-- Индексы таблицы `descriptions`
--
ALTER TABLE `descriptions`
ADD PRIMARY KEY (`id`);
--
-- Индексы таблицы `movie`
--
ALTER TABLE `movie`
ADD PRIMARY KEY (`id`);
--
-- Индексы таблицы `music`
--
ALTER TABLE `music`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT для сохранённых таблиц
--
--
-- AUTO_INCREMENT для таблицы `categories`
--
ALTER TABLE `categories`
MODIFY `id` tinyint(4) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;
--
-- AUTO_INCREMENT для таблицы `descriptions`
--
ALTER TABLE `descriptions`
MODIFY `id` tinyint(5) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;
--
-- AUTO_INCREMENT для таблицы `movie`
--
ALTER TABLE `movie`
MODIFY `id` int(5) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;
--
-- AUTO_INCREMENT для таблицы `music`
--
ALTER TABLE `music`
MODIFY `id` int(5) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=23;
COMMIT;