|
|
|
INNER JOIN, Запрос
|
|||
|---|---|---|---|
|
#18+
Добрый вечер, форумчане! Вопрос простой, для тех, кто пишет запросы к БД часто, на знание синтаксиса SQL. Имеется таблица: 'an_site_tmplvar_contentvalues' со структурой: Код: sql 1. 2. 3. 4. В поле id хранится айдишник, который не играет никакой для меня сейчас роли. В поле tmplvarid хранится адишник поля, выводимого на странице. У каждого поля свой tmplvarid , например у поля "Страна" tmplvarid =10, для поля "Регион" tmplvarid =9. Поле contentid - это айдишник страницы, на которой расположено поле. В поле value - значение данного поля (например "регион" для страницы с указанным contentid . Получается в одной таблице хранятся все экземпляры всех полей для заполнения, привязанных к айди страницы. Моя задача сделать выборку contentid . Известен массив Чтобы сделать фильтр выборки из таблицы, я пришел к выводу, что нужен INNER JOIN.Немного покопавшись, я набросал такой запрос: Код: sql 1. 2. 3. 4. 5. Пояснения: нужно выбрать их табл. все contentid ресурсов, у которых поле с tmplvarid =9 и значением value =1 (поле "город", значение "Ростов"), из полученных contentid мне нужны только те ресурсы, где поле tmplvarid =6 имеет значение value =12 (поле район, значение "Адмиралтейский"). Надеюсь понятно описал суть проблемы. Подскажите, если кто-то вник, пожалуйста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2014, 00:36:47 |
|
||
|
INNER JOIN, Запрос
|
|||
|---|---|---|---|
|
#18+
kumirskaНадеюсь понятно описал суть проблемы.Переформулирую: найти все контентид, для которых есть как записи с (tmplvarid=9 и value=1), так и (tmplvarid=6 и value=12). Ну вот, например http://www.sql.ru/forum/1044837/pomogite-sozdat-zapros-s-group-by ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2014, 06:38:59 |
|
||
|
INNER JOIN, Запрос
|
|||
|---|---|---|---|
|
#18+
[quot tanglir]kumirskaнайти все контентид, для которых есть как записи с (tmplvarid=9 и value=1), так и (tmplvarid=6 и value=12) Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2014, 08:53:22 |
|
||
|
INNER JOIN, Запрос
|
|||
|---|---|---|---|
|
#18+
Спасибо! У меня кстати получился запрос рабочий, стоит ли его менять на подобный Вашему? Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2014, 09:44:33 |
|
||
|
INNER JOIN, Запрос
|
|||
|---|---|---|---|
|
#18+
kumirskaстоит ли его менять на подобный Вашему? А если значений будет не две пары, а три? четыре? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2014, 11:02:22 |
|
||
|
INNER JOIN, Запрос
|
|||
|---|---|---|---|
|
#18+
Akina, ну значений больше не будет, только 2: tmplvarid и value. А вот количество join-ов может быть 2-6. Значит все-таки следует не делать через JOIN? Я не силен в MySql оптимизации, наковырял инфу, долго пытался, сделал рабочий запрос, но мне интересно мнение людей знающих, надо ведь все делать правильно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2014, 11:17:48 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38801598&tid=1833957]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 328ms |

| 0 / 0 |
