Запрос из трех таблиц

93
12 марта 2021, 02:00

Пытаюсь выполнить вот такой просто запрос

SELECT O.id
FROM accer O
JOIN accer_links I ON I.pid =1
AND I.cid = O.id
JOIN catalog_chains P ON P.pidc !=29
ORDER BY I.sort

Но результат такой, как будто в предпоследней строчке нет != 29 все равно показывает элементы, у которых P.pidc=29, а мне надо P.pidc!=29

Я где-то скобку не закрыл?

CREATE TABLE IF NOT EXISTS `accer` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `hidden` int(1) unsigned NOT NULL DEFAULT '0',
  `name` varchar(255) NOT NULL DEFAULT '',
  `nal1` varchar(255) NOT NULL DEFAULT '',
  `na2` varchar(255) NOT NULL DEFAULT '',
  `nal3` varchar(255) NOT NULL DEFAULT '',
  `nal4` varchar(255) NOT NULL DEFAULT '',
  `nal5` varchar(255) NOT NULL DEFAULT '',
  `kol_vo` varchar(255) NOT NULL DEFAULT '',
  `dop_inf` text NOT NULL,
  `vnimanie` text NOT NULL,
  `recomend` int(1) unsigned NOT NULL DEFAULT '0',
  `gde` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=8 ;

INSERT INTO `accer` (`id`, `hidden`, `name`, `nal1`, `na2`, `nal3`, `nal4`, `nal5`, `kol_vo`, `dop_inf`, `vnimanie`, `recomend`, `gde`) VALUES
(3, 1, 'Галстук 11', '1', '1', '1', '1', '1', '1', '1', '1', 0, '1'),
(4, 1, 'ывапн', '', '', '', '', '', '', '', '', 0, ''),
(5, 1, '23141324', '1324', '', '132', '', '4132', '', '41324', '', 0, '4'),
(6, 1, '1', '1', '1', '', '', '', '', '', '', 0, ''),
(7, 1, '123222', '3123', '', '123', '12', '312312', '', '213', '', 0, '');
CREATE TABLE IF NOT EXISTS `accer_links` (
  `pid` int(1) unsigned NOT NULL DEFAULT '0',
  `cid` int(11) unsigned NOT NULL DEFAULT '0',
  `sort` int(11) unsigned NOT NULL DEFAULT '0'
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
--
-- Дамп данных таблицы `accer_links`
--
INSERT INTO `accer_links` (`pid`, `cid`, `sort`) VALUES
(1, 7, 7),
(1, 6, 6),
(2, 5, 5),
(1, 3, 3),
(2, 4, 4);
CREATE TABLE IF NOT EXISTS `catalog_chains` (
  `pidc` int(1) unsigned NOT NULL DEFAULT '0',
  `cidc` int(11) unsigned NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=cp1251;
--
-- Дамп данных таблицы `catalog_chains`
--
INSERT INTO `catalog_chains` (`pidc`, `cidc`) VALUES
(28, 3),
(29, 6),
(29, 3);
READ ALSO
Как сделать join один ко многму и взять только одно поле?

Как сделать join один ко многму и взять только одно поле?

Есть таблица users и user_phones (один ко многому), как получить список где каждый user имел бы только один номер ?

112
MySQL Update set

MySQL Update set

Всем приветТакая задача:

107
Разложить данные в таблицу на сайт

Разложить данные в таблицу на сайт

Через api получил такие данные

112