Откуда берется значение null?

0

У меня 2 таблицы movie и  descriptions. У них равное количество строк, но когда я использую LEFT JOIN, последняя строка все равно получается со значением NULL. Почему?

MySQL

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;
Sign up or Log in to write an answer