X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Запрос на выборку с MySQL
WarZEN
WarZEN
Topic Starter сообщение 5.5.2013, 10:45; Ответить: WarZEN
Сообщение #1


Участник
***

Группа: User
Сообщений: 121
Регистрация: 10.3.2013
Поблагодарили: 24 раза
Репутация:   6  


Приветствую. Помогите правильно составить запрос на выборку с БД. С этой жарой голова совсем не варит...
Вот собственно сама структура таблиц http://SSMaker.ru/bc9fba08/
Нужно выбрать все товары (А), где значение параметра (С) Равно Х

Заранее благодарю.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
webpavilion
webpavilion
сообщение 5.5.2013, 12:03; Ответить: webpavilion
Сообщение #2


сеошник на пенсии
*******

Группа: Active User
Сообщений: 2726
Регистрация: 28.4.2009
Из: МО
Поблагодарили: 1659 раз
Репутация:   171  


Помогите это когда человек сам старается но у него не выходит, у вас же напишите за меня.
Почитайте про join в mysql.


--------------------
Не ведитесь, cамопис это почти всегда плохо!

Делаю сайты на Drupal 7.x
(очень дорого)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
tszyan
tszyan
сообщение 5.5.2013, 12:23; Ответить: tszyan
Сообщение #3


Участник
***

Группа: User
Сообщений: 207
Регистрация: 28.1.2013
Из: Москва
Поблагодарили: 110 раз
Репутация:   27  


WarZEN,
1. У Вас база не нормализована, в таблице D нет поля id параметра, а то, что Вы называете "ID параметра" на самом деле является id значения параметра. id параметра необходим, для того, чтобы указать, значение какого именно параметра вы хотите равным X.
2. Два варианта:
а) Если во всех разделах одни и те же параметры у товаров, то Вы забыли указать в условии нужен ли Вам товар со значением параметра равным X из какого-то определенного раздела или из любого.
б) Опять же ошибка нормализации базы данных и id раздела в таблице со значениями товара не требуется. (Если у товаров в разных разделах разные параметры)

3. Вы также не указали хотите ли вместе с товаром получить список разделов. Или хотите один экземпляр товара независимо в скольких разделах он находится.

Наименование столбцов a1,a2,b1,b2... Супер! facepalm.gif

Сообщение отредактировал tszyan - 5.5.2013, 12:24


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
WarZEN
WarZEN
Topic Starter сообщение 7.5.2013, 16:55; Ответить: WarZEN
Сообщение #4


Участник
***

Группа: User
Сообщений: 121
Регистрация: 10.3.2013
Поблагодарили: 24 раза
Репутация:   6  


(webpavilion @ 5.5.2013, 10:03) *
Помогите это когда человек сам старается но у него не выходит, у вас же напишите за меня.

А как вы видите что я "стараюсь" или нет? Или вы телепат и читаете мои мысли? Или вам написать тут кучу нерабочего кода, каким образом пытался все это чудо проделать, но ничего не получалось? Все равно начали бы обсырать под другим предлогом... Проще назвать халявщиком, чем дать дельный совет. Спасибо за помощь...

tszyan, таблице D есть поле id параметра - как раз так как я его и назвал и служит для того, чтобы указать, значение какого именно параметра я хочу получить равным X. Первый элемент A, B, C с именем ID является auto increment и уникальны глобально.

б) = id раздела требуется для других выборок и определенного вывода.
раздел - по сути это название выпадающего списка, значение параметра - это как бы элементы этого списка, тоисть - определенный параметр может относится только к конкретному разделу.
Наименование столбцов a1,a2,b1,b2... Супер!
- структура БД сильно развернутая и такое построение на этапе проектирования и обработки мне удобней. лично мне проще связать на листе связки буквенным обозначением чем осмысленным, которое может быть длинным. Сейчас структура и блок-схема взаимосвязей не помещается полностью на 6 листов А4. Думаю теперь поняли, почему такое обозначение...

Всем спасибо. Разобрался сам спустя трое суток...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
tszyan
tszyan
сообщение 9.5.2013, 21:10; Ответить: tszyan
Сообщение #5


Участник
***

Группа: User
Сообщений: 207
Регистрация: 28.1.2013
Из: Москва
Поблагодарили: 110 раз
Репутация:   27  


WarZEN,
Всё же советую почитать про нормализацию БД, пригодится в будущем. Ваш ответ говорит о том, что Вы, скорее всего, плохо представляете что это такое.

1. О таблице D - в ней нет уникального идентификатора записи именно он должен называться ID параметра, если в этой таблице храниться список параметров. А в таблице C поле C1 должно назваться ID значения параметра.
2. ID раздела и в таблице C и в таблице D, с учетом Вашего комментария, говорит об избыточности данных, которой следует избегать (в большинстве случаев).


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
WarZEN
WarZEN
Topic Starter сообщение 9.5.2013, 22:55; Ответить: WarZEN
Сообщение #6


Участник
***

Группа: User
Сообщений: 121
Регистрация: 10.3.2013
Поблагодарили: 24 раза
Репутация:   6  


tszyan, Возможно вы правы, но каждый варит кашу по своему вкусу или знаниям. Если каждый раз просить помощи, то получится ситуация заявленная Павилионом. С БД сейчас порядка 100 разных запросов и все нормально работают и устраивают моим требования... именно в этой ситуации возникла сложность.

1. ID самого параметра там вовсе не нужно, по крайней мере не вижу в нем надобности, поскольку к нему (id auto_increment) нет обращений как таковых вообще.
2. Избыточности нет, поскольку как в посте выше и говорил - данные обрабатываются и другими запросами и эти поля нужны не только для этой выборки. Чтобы сильно не грузить саму базу - многие поля комбинировались в таблицах. + в указанной схеме указаны не все значения - только те, которые каким либо образом по моему мнению могут относится непосредственно к поставленной задаче))
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Недорогие услуги - php/js/mysql/jquery/bootstrap
2 vlads 655 13.12.2017, 21:01
автор: vlads
Открытая тема (нет новых ответов) Стабильный хостинг за 30р в месяц. GNU/Linux, PHP, MySQL, Perl, бэкапы. Помогу перенести сайт.
5 freeax 1546 10.11.2017, 13:15
автор: freeax
Открытая тема (нет новых ответов) Web программирование на С/С++/PHP/MySQL/SQL, высоконагруженные проекты
Есть наработки в области бирж трафика, топов, тизеров, видео cj-тубов
3 DFService 724 1.11.2017, 21:09
автор: DFService
Открытая тема (нет новых ответов) Сделать импорт Mysql
1 azstel 632 9.5.2017, 13:56
автор: serjoga
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыВакансия, Москва, Web-разработчик/Программист (PHP, CMS Битрикс, MySQL)
2 PixelPlus 563 10.4.2017, 15:12
автор: PixelPlus


 



RSS Текстовая версия Сейчас: 16.12.2017, 13:46
Дизайн