Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Не выбирает при нескольких условиях / 25 сообщений из 27, страница 1 из 2
01.10.2015, 15:10:31
    #39066220
HbIXA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выбирает при нескольких условиях
Запрос

Код: sql
1.
SELECT * FROM table 1b LEFT JOIN table2 p ON b.id=p.id_board WHERE (p.id_parametr = 1 AND p.value_parametr = 'Audi') AND (p.id_parametr = 3 AND p.value_parametr = '200') GROUP BY b.title



Структура table2
Код: plaintext
1.
2.
3.
4.
5.
6.
 id_board    value parametr          id_parametr           
 --------------------------------------------------

1              | Audi                           | 1 |        
1              | 200                            | 3 |        
 --------------------------------------------------

Структура table1
Код: plaintext
1.
2.
3.
4.
 id
 ----
| 1 |               
 ----

Почему ничего не выводит? Смена на OR не устраивает.
...
Рейтинг: 0 / 0
01.10.2015, 15:28:10
    #39066244
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выбирает при нескольких условиях
HbIXA
Код: sql
1.
... LEFT JOIN table2 p ... WHERE (p.id_parametr = 1 ...

Вот за каким хреном тут ЛЕВОЕ связывание?

HbIXAПочему ничего не выводит?
Тыкни пальцем в ОДНУ ЗАПИСЬ, для которой выполняются описанные тобой условия.

HbIXAСмена на OR не устраивает.
Обоснуй.
...
Рейтинг: 0 / 0
01.10.2015, 15:35:18
    #39066256
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выбирает при нескольких условиях
> HbIXA
> Почему ничего не выводит?

Упрости свой запрос до такого
Код: sql
1.
2.
3.
4.
5.
SELECT * FROM table2 p
WHERE 
    p.id_parametr = 1 
      AND 
    p.id_parametr = 3

, может станет понятнее.
...
Рейтинг: 0 / 0
01.10.2015, 19:35:03
    #39066462
HbIXA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выбирает при нескольких условиях
AkinaHbIXA
Код: sql
1.
... LEFT JOIN table2 p ... WHERE (p.id_parametr = 1 ...

Вот за каким хреном тут ЛЕВОЕ связывание?

HbIXAПочему ничего не выводит?
Тыкни пальцем в ОДНУ ЗАПИСЬ, для которой выполняются описанные тобой условия.

HbIXAСмена на OR не устраивает.
Обоснуй.

Опустим мой запрос. Нет его.

В одной таблице объявление, в другой параметры объявления. Каждый параметр в отдельной записи. То есть мне нужно, чтобы можно было выбирать и ауди без модели, и ауди с моделью. Если сделать OR то, могут выбираться все модели ауди, что не правильно.
...
Рейтинг: 0 / 0
02.10.2015, 06:27:15
    #39066597
HbIXA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выбирает при нескольких условиях
скукотища> HbIXA
> Почему ничего не выводит?

Упрости свой запрос до такого
Код: sql
1.
2.
3.
4.
5.
SELECT * FROM table2 p
WHERE 
    p.id_parametr = 1 
      AND 
    p.id_parametr = 3

, может станет понятнее.

Упростил для вас

SELECT * FROM table2 p
WHERE
p.id_parametr = 1 and p.value_parametr = 'Audi'
AND
p.id_parametr = 3 and p.value_parametr = 200
...
Рейтинг: 0 / 0
02.10.2015, 07:12:59
    #39066605
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выбирает при нескольких условиях
HbIXA,

ну и? ничего странного не видите?
...
Рейтинг: 0 / 0
02.10.2015, 07:14:46
    #39066606
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выбирает при нескольких условиях
HbIXA
Код: sql
1.
2.
3.
4.
5.
SELECT * FROM table2 p
WHERE 
    p.id_parametr = 1 
      AND 
    p.id_parametr = 3


тебя ж , как кошака , носом по калу ...
...
Рейтинг: 0 / 0
02.10.2015, 07:19:11
    #39066607
HbIXA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выбирает при нескольких условиях
Да, ни одна запись не подходит условиям, поэтому прочитайте выше пожалуйста. Мне нужно, чтобы из первой таблицы выводилась эта первая запись которая имеет параметры именно такие
...
Рейтинг: 0 / 0
02.10.2015, 07:29:15
    #39066611
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выбирает при нескольких условиях
Код: sql
1.
2.
3.
 p.id_parametr = 1 
      AND 
    p.id_parametr = 3


таким требованиям ни одна запись никогда, ни у кого не удовлетворяет
...
Рейтинг: 0 / 0
02.10.2015, 07:31:56
    #39066613
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выбирает при нескольких условиях
HbIXA
ты ваще про логические операторы что-нибудь читал?
...
Рейтинг: 0 / 0
02.10.2015, 07:47:07
    #39066618
HbIXA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выбирает при нескольких условиях
То что я упростил, я уже давно понимал, я написал запрос, чтобы донести мысль. Программирую не первый год, так что отбросьте болтавню лучше помогите делом.

авторОпустим мой запрос. Нет его!

В одной таблице объявление, в другой параметры объявления. Каждый параметр в отдельной записи. То есть мне нужно, чтобы можно было выбирать и ауди без модели, и ауди с моделью. Если сделать OR то, могут выбираться все модели ауди, что не правильно.
...
Рейтинг: 0 / 0
02.10.2015, 08:07:17
    #39066628
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выбирает при нескольких условиях
???
Код: sql
1.
2.
3.
4.
5.
SELECT * FROM table2 p
WHERE 
    (p.id_parametr = 1 
      or
    p.id_parametr = 3) AND ...
...
Рейтинг: 0 / 0
02.10.2015, 09:23:08
    #39066698
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выбирает при нескольких условиях
HbIXA , да тебя уже задолбались тыкать носом...
вадя
Код: sql
1.
2.
3.
 p.id_parametr = 1 
      AND 
    p.id_parametr = 3


таким требованиям ни одна запись никогда, ни у кого не удовлетворяет
Перевожу на русский ещё раз - значение поля ОДНОЙ записи не может быть ОДНОВРЕМЕННО равно и единице, и тройке.
...
Рейтинг: 0 / 0
02.10.2015, 09:32:13
    #39066713
HbIXA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выбирает при нескольких условиях
вадя???
Код: sql
1.
2.
3.
4.
5.
SELECT * FROM table2 p
WHERE 
    (p.id_parametr = 1 
      or
    p.id_parametr = 3) AND ...



ДА ПРИЧЕМ ТУТ ЭТО Я ПРОШУ ПОМОЧЬ НАПИСАТЬ ДРУГОЙ ЗАПРОС КОТОРЫЙ БУДЕТ ВЫПОЛНЯТЬ ТО ЧТО Я ОПИСАЛ ВЫШЕ!
...
Рейтинг: 0 / 0
02.10.2015, 09:33:34
    #39066718
HbIXA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выбирает при нескольких условиях
Третий раз повторяю

Опустим мой запрос. Нет его!

авторВ одной таблице объявление, в другой параметры объявления. Каждый параметр в отдельной записи. То есть мне нужно, чтобы можно было выбирать и ауди без модели, и ауди с моделью. Если сделать OR то, могут выбираться все модели ауди, что не правильно.

Как это сделать не глядя на мой запрос???
...
Рейтинг: 0 / 0
02.10.2015, 09:40:50
    #39066724
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выбирает при нескольких условиях
дай ddl таблиц
дай содержимое этих таблиц (в виде insert .....)
результат который ты хочешь получить
...
Рейтинг: 0 / 0
02.10.2015, 09:45:27
    #39066732
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выбирает при нескольких условиях
HbIXA,

table2
id_board value parametr id_parametr

назначение этих полей опишите
я так понимаю
id_parametr - =1 это марка (Ауди, VW, BMW)
id_parametr = 3 это модель (Ауди - 80, 100 ... )
и , это у вас иерархическая таблица параметров?

надо теперь додумывать...
- а где связь, что 100 - это для Ауди
- что это id_board
- table1 -это что за таблица

в двух словах опишите таблицы...
...
Рейтинг: 0 / 0
02.10.2015, 09:57:29
    #39066741
HbIXA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выбирает при нескольких условиях
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
CREATE TABLE IF NOT EXISTS `sw_board_parametr` (
  `id` int(11) NOT NULL,
  `id_board` int(11) NOT NULL DEFAULT '0',
  `id_parametr` int(11) NOT NULL DEFAULT '0',
  `value_parametr` varchar(40) NOT NULL DEFAULT ''
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8;

INSERT INTO `sw_board_parametr` (`id`, `id_board`, `id_parametr`, `value_parametr`) VALUES
(1, 1, 1, 'Audi'),
(2, 2, 1, 'Audi'),
(3, 2, 2, '2014'),
(4, 2, 3, '200'),
(5, 2, 5, 'Вариатор'),
(6, 2, 6, 'Газ'),
(7, 2, 7, '4WD'),
(8, 2, 8, 'Микроавтобус'),
(9, 3, 1, 'BMW'),
(10, 3, 2, '2014'),
(11, 3, 3, '1-Series'),
(12, 3, 5, 'Автомат'),
(13, 3, 6, 'Газ'),
(14, 3, 7, '4WD');
ALTER TABLE `sw_board_parametr`
  ADD PRIMARY KEY (`id`);



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";

CREATE TABLE IF NOT EXISTS `sw_board` (
  `id` int(11) NOT NULL,
  `title` varchar(300) NOT NULL,
  `phone` varchar(11) NOT NULL DEFAULT '',
  `email` varchar(50) NOT NULL DEFAULT '',
  `notice` smallint(1) NOT NULL DEFAULT '0',
  `region_id` mediumint(8) NOT NULL DEFAULT '0',
  `cat_id` mediumint(8) NOT NULL DEFAULT '0',
  `subcat_id` mediumint(8) NOT NULL DEFAULT '0',
  `rubric_id` mediumint(8) NOT NULL DEFAULT '0',
  `text_option` text NOT NULL,
  `price` mediumint(8) NOT NULL DEFAULT '0',
  `pacing_day` smallint(2) NOT NULL DEFAULT '0',
  `date_post` int(10) NOT NULL DEFAULT '0',
  `photo` text NOT NULL,
  `comments` smallint(1) NOT NULL DEFAULT '0'
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

INSERT INTO `sw_board` (`id`, `title`, `phone`, `email`, `notice`, `region_id`, `cat_id`, `subcat_id`, `rubric_id`, `text_option`, `price`, `pacing_day`, `date_post`, `photo`, `comments`) VALUES
(1, 'Продам audi', '9174946173', 'hbixa@mail.ru', 1, 0, 1, 2, 9, '', 1000000, 3, 1443608714, '', 1),
(2, 'Продам audi 2', '9174946173', 'hbixa@mail.ru', 1, 0, 1, 2, 9, '', 1000000, 3, 1443608765, '', 1),
(3, 'Продам BMW', '9174946173', 'hbixa@mail.ru', 1, 0, 1, 2, 0, '', 1000000, 3, 1443610961, '', 1);

ALTER TABLE `sw_board`
  ADD PRIMARY KEY (`id`);



Вывести должно "Продам audi 2", параметров может быть много, генерацию я сам сделаю
...
Рейтинг: 0 / 0
02.10.2015, 10:45:17
    #39066797
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выбирает при нескольких условиях
авторВывести должно "Продам audi 2", параметров может быть много, генерацию я сам сделаю
?????
...
Рейтинг: 0 / 0
02.10.2015, 10:52:30
    #39066811
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выбирает при нескольких условиях
вадяавторВывести должно "Продам audi 2", параметров может быть много, генерацию я сам сделаю
?????!!!!!
Код: sql
1.
select title from sw_board where id=2
...
Рейтинг: 0 / 0
02.10.2015, 10:57:45
    #39066821
HbIXA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выбирает при нескольких условиях
Есть фильтр, выдающий список

Например
Марка выбираем - audi
Модель - 200

то есть первый параметр марка id_parametr = 1 со значением value_parametr = Audi
и второй параметр модель id_parametr = 3 со значением value_parametr = 200

и должно выдать продам ауди 2
...
Рейтинг: 0 / 0
02.10.2015, 11:59:08
    #39066919
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выбирает при нескольких условиях
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SELECT
  sw_board_parametr.id_board,
  sw_board.title
FROM (SELECT
    sw_board_parametr.id_board
  FROM sw_board_parametr
  WHERE sw_board_parametr.value_parametr = 'audi') sw_board_parametr
  INNER JOIN (SELECT
      sw_board_parametr.id_board
    FROM sw_board_parametr
    WHERE sw_board_parametr.value_parametr = 200) sw_board_parametr_1
    ON sw_board_parametr.id_board = sw_board_parametr_1.id_board
  INNER JOIN sw_board
    ON sw_board_parametr.id_board = sw_board.id 
...
Рейтинг: 0 / 0
02.10.2015, 12:02:58
    #39066926
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выбирает при нескольких условиях
HbIXA,

т.е. должна выбираться строка с максимальным совпадениям параметров...?
...
Рейтинг: 0 / 0
02.10.2015, 12:19:33
    #39066952
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выбирает при нескольких условиях
либо так
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SELECT
  sw_board.title
FROM sw_board
  INNER JOIN (SELECT
      sw_board_parametr.id_board
    FROM sw_board_parametr
    WHERE sw_board_parametr.value_parametr = 'audi') d1
    ON sw_board.id = d1.id_board
  INNER JOIN (SELECT
      sw_board_parametr.id_board
    FROM sw_board_parametr
    WHERE sw_board_parametr.value_parametr = '200') d2
    ON sw_board.id = d2.id_board
...
Рейтинг: 0 / 0
02.10.2015, 12:21:02
    #39066957
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не выбирает при нескольких условиях
второй вариант предпочтительней, позволит просто строить запрос при добавлении новых условий
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Не выбирает при нескольких условиях / 25 сообщений из 27, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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