Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Поиск по одному полю с разными значениями / 4 сообщений из 4, страница 1 из 1
31.01.2017, 13:35
    #39395436
Dominus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по одному полю с разными значениями
Здравствуйте..
У меня есть таблицы product, field, field_item
к примеру в таблице есть поле name_field в нем
есть разные значения, например 727-kjeshboks - 12 шт. а 723-mehanicheskij-kodovyj - 6 шт. c общим id_product 12

запрос типа

SELECT * FROM field LEFT JOIN field_item ON field.id=field_item.id_field WHERE type=17 AND field.name_field IN ('727-kjeshboks','723-mehanicheskij-kodovyj') GROUP BY id_product

выводит все позиции которые есть в таблице field с первым и вторым значением то есть 12 шт

Вопрос!
Как сделать выборку так что б выводились общее ограничивающие значение 6 шт. то есть по меньшему количеству полей

Заранее благодарен за ответы!
...
Рейтинг: 0 / 0
31.01.2017, 13:48
    #39395453
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по одному полю с разными значениями
Dominusто есть 12 шт
Не верю.

Dominusзапрос типа
Используйте тег SRC, форматирование и Кнопку "Просмотр". И для КАЖДОГО поля указывайте алиас таблицы.

DominusУ меня есть таблицы product, field, field_item
Разумнее было показать DDL. А таблица product так и вовсе не нужна, если судить по тексту...
...
Рейтинг: 0 / 0
31.01.2017, 14:16
    #39395486
Dominus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по одному полю с разными значениями
Код: sql
1.
SELECT * FROM field LEFT JOIN field_item ON field.id=field_item.id_field WHERE type=17 AND field.name_field IN ('727-kjeshboks','723-mehanicheskij-kodovyj') GROUP BY id_product




Таблица field
Код: sql
1.
2.
3.
4.
5.
6.
7.
+--------+---------------+--------------+-------------+
| id     | name_field                        |   type
+--------+---------------+--------------+-------------+
|  727  |  727-kjeshboks                    |   17     |
|  723  |  723-mehanicheskij-kodovyj |   17     |
|  827  |  827-jelektromagnitnyj         |   17     |
+--------+---------------+--------------+--------------+



Таблица field_item
Код: sql
1.
2.
3.
4.
5.
6.
7.
+--------+-------------+--------------+
| id      |  id_field        | id_product
+------+---------------+--------------+
|  72  |        727        |        12       |
|  73  |        723        |        12       |
|  79  |        827        |        12       |
+--------+---------------+------------+
...
Рейтинг: 0 / 0
31.01.2017, 15:45
    #39395579
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по одному полю с разными значениями
Единственным зримым решением в формате именно запроса вижу нумерацию записей в группе и отбор связыванием по равенству этих номеров (в дополнение ID продукта).

Считаю более разумным реализовать то же в формате хранимой процедуры, где сформировать два независимых курсора и фетчить их параллельно.

==============

Почему Вы отбираете по field.name_field, когда проще и, в общем, разумнее отбирать по field.id?

==============

Слово "форматирование" предполагало вот такое представление:
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT * 
FROM field 
LEFT JOIN field_item 
  ON field.id=field_item.id_field 
WHERE type=17 
  AND field.name_field IN ('727-kjeshboks','723-mehanicheskij-kodovyj') 
GROUP BY id_product


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


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