powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка из таблицы по нескольким параметрам
5 сообщений из 5, страница 1 из 1
Выборка из таблицы по нескольким параметрам
    #39329286
alexzh16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
добрый день, существует такая база:

CREATE TABLE `TEST` (
`ID` int(10) NOT NULL,
`TAB1` int(15) DEFAULT NULL,
`TAB2` varchar(1) COLLATE utf8_bin DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

INSERT INTO `TEST` (`ID`, `TAB1`, `TAB2`) VALUES
(23786, 2766, 'B'),
(28606, 2766, 'B'),
(29864, 2764, 'A'),
(11748, 2764, 'A'),
(11876, 2765, 'B'),
(11116, 2767, 'B'),
(12014, 2764, 'B'),
(12103, 2764, 'B'),
(12104, 2764, 'B'),
(11131, 2764, 'B'),
(12222, 2768, 'B'),
(111697, 2766, 'B'),
(111781, 2766, 'B'),
(112115, 2764, 'B'),
(23774, 2766, 'S')

как выбрать все поля, где TAB1 != 2764 или TAB1 != 2765 и TAB2 != "S"

что то я совсем потерялся, спасибо за ранее.
...
Рейтинг: 0 / 0
Выборка из таблицы по нескольким параметрам
    #39329295
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
-- выбрать все поля
SELECT *
FROM test
-- где TAB1 != 2764 или TAB1 != 2765 
WHERE tab1 NOT IN (2764, 2765)
-- и TAB2 != "S"
AND tab2 != 'S'
...
Рейтинг: 0 / 0
Выборка из таблицы по нескольким параметрам
    #39329301
alexzh16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за столь быстрый ответ!
...
Рейтинг: 0 / 0
Выборка из таблицы по нескольким параметрам
    #39329310
alexzh16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

-- еще можно один вопросец?

-- есть две таблицы, сегодня 2016-10-18

CREATE TABLE `TEST0` (
`ID` int(10) NOT NULL,
`TAB1` int(15) DEFAULT NULL,
`TAB2` varchar(1) COLLATE utf8_bin DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

INSERT INTO `TEST0` (`ID`, `TAB1`, `TAB2`) VALUES
(23786, 2766, 'B'),
(28606, 2766, 'B'),
(29864, 2764, 'A'),
(11748, 2764, 'A'),
(11876, 2765, 'B'),
(11116, 2767, 'B'),
(12014, 2764, 'B'),
(12103, 2764, 'B'),
(12104, 2764, 'B'),
(11131, 2764, 'B'),
(12222, 2768, 'B'),
(111697, 2766, 'B'),
(111781, 2766, 'B'),
(112115, 2764, 'B'),
(23774, 2766, 'S')

-- и

CREATE TABLE `TEST1` (
`ID` int(10) NOT NULL,
`DATA` date DEFAULT "2016-01-01",
`TAB20` varchar(1) COLLATE utf8_bin DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

INSERT INTO `TEST1` (`ID`, `DATA`, `TAB20`) VALUES
(23786, '2016-10-02'), 'NA'),
(23786, '2016-10-03', 'NA'),
(23786, '2016-10-04', 'NA'),
(23786, '2016-10-05', 'OFF'),
(11748, '2016-10-01', 'NA'),
(11748, '2016-10-07', 'NA'),
(11748, '2016-10-09', 'NA'),
(11748, '2016-10-18', 'ON'),
(11876, '2016-10-01', 'NA'),
(11876, '2016-10-07', 'NA'),
(11876, '2016-10-09', 'ON'),
(11876, '2016-10-14', 'OFF')

-- выбрать все ID, где TEST1.TAB1 != 2764 или TEST0.TAB1 != 2765 и TEST0.TAB2 != "S" и TEST1.TAB20 не равнялось "ON" у ID и учитывать дату ≥ 3 дням от сегодняшней

-- те результат дожен быть 23786 и 11748, так как у ID 11876 событие ON случилось 2016-10-09 и ее не надо учитывать, так же как у 11748 оно произошло один день назад от сегодняшней

спасибо еще раз
...
Рейтинг: 0 / 0
Выборка из таблицы по нескольким параметрам
    #39329649
alexzh16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-- немного поправка, ошибочка была:

CREATE TABLE `TEST0` (
`ID` int(10) NOT NULL,
`TAB1` int(15) DEFAULT NULL,
`TAB2` varchar(1) COLLATE utf8_bin DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

INSERT INTO `TEST0` (`ID`, `TAB1`, `TAB2`) VALUES
(23786, 2766, 'B'),
(28606, 2766, 'B'),
(29864, 2764, 'A'),
(11748, 2764, 'A'),
(11876, 2765, 'B'),
(11116, 2767, 'S'),
(23774, 2766, 'S')

CREATE TABLE `TEST1` (
`ID` int(10) NOT NULL,
`DATA` date DEFAULT "2016-01-01",
`TAB20` varchar(2) COLLATE utf8_bin DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

INSERT INTO `TEST1` (`ID`, `DATA`, `TAB20`) VALUES
(23786, '2016-10-02', 'NA'),
(23786, '2016-10-05', 'OFF'),
(11748, '2016-10-01', 'NA'),
(11748, '2016-10-18', 'ON'),
(11876, '2016-10-01', 'NA'),
(11876, '2016-10-09', 'ON'),
(11876, '2016-10-14', 'OFF'),
(23774, '2016-08-14', 'ON'),
(23774, '2016-09-14', 'OFF')

-- выбрать все ID, где TEST1.TAB1 != 2777 или TEST0.TAB1 != 2764 и TEST0.TAB2 != "S" и в TEST1.TAB20 событие "ON" ни разу не произошло либо старше трех дней (у ID и учитывать дату ≥ 3 дням от сегодняшней 18.10.2016)

-- те результат должен быть 23786, 11876
ID 23786 событие ON не было
ID 11876 событие ON случилось 2016-10-09 и оно старше 3х дней

ID 11748 событие ON случилось 2016-10-09 и у него профиль "2764"
ID 23774 статус "S"
ID 11116 статус "S"

вот так будет понятно думаю
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка из таблицы по нескольким параметрам
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]