|
|
|
Помогите решить проблему с метками (тегами) статей
|
|||
|---|---|---|---|
|
#18+
Есть таблица с метками статей Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Задача такая: нужно получить все метки (tag_id), которые есть у статей с выбранной меткой. Т.е. я выбрал метку 7. Она есть у статей 1 и 2. Нужно получить метки 8 и 9, которые тоже есть у этих статей, но не метку 6, потому что она в статье 3, а ей не присвоена метка 7. Это можно сделать одним запросом? Хожу вокруг конструкции HAVING, но чего-то не догоняю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2016, 16:34 |
|
||
|
Помогите решить проблему с метками (тегами) статей
|
|||
|---|---|---|---|
|
#18+
в лоб построчно то пробовали? Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2016, 19:44 |
|
||
|
Помогите решить проблему с метками (тегами) статей
|
|||
|---|---|---|---|
|
#18+
Alex_Ustinov, Мне подзапросы боязно использовать. Я стараюсь без джоинов и подзапросов делать. Я читал, что подзапросы могут выполняться не один раз, а для каждой обрабатываемой строки, как захотят, что создаёт нереальную нагрузку на мускуль. Есть какая-то гарантия, что этот подзапрос выполнится ровно один раз? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2016, 20:13 |
|
||
|
Помогите решить проблему с метками (тегами) статей
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. когда найдете вариант без подзапросов или джойнов - поделитесь пожалуйста...................... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2016, 10:01 |
|
||
|
Помогите решить проблему с метками (тегами) статей
|
|||
|---|---|---|---|
|
#18+
Alex_Ustinov, Во-первых, двумя запросами с обработкой питоном посередине. Во-вторых, созданием ещё одной "избыточной" таблицы tag_id | tag_id. Оба варианта, надеюсь, по понятным причинам мне не очень нравятся. Это крайние случаи, если придётся оптимизировать систему. Я в SQL не большой специалист, поэтому спросил, может, я какой-то конструкции или хитрости не знаю. Спасибо, пока сделаю подзапросом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2016, 14:21 |
|
||
|
Помогите решить проблему с метками (тегами) статей
|
|||
|---|---|---|---|
|
#18+
ну эти варианты не относятся же к СКЛ....... вы просили одним запросом, в СКЛ это никак не влезет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2016, 18:59 |
|
||
|
Помогите решить проблему с метками (тегами) статей
|
|||
|---|---|---|---|
|
#18+
Юра РимскийAlex_Ustinov, Мне подзапросы боязно использовать. Я стараюсь без джоинов и подзапросов делать. Я читал, что подзапросы могут выполняться не один раз, а для каждой обрабатываемой строки, как захотят, что создаёт нереальную нагрузку на мускуль. Есть какая-то гарантия, что этот подзапрос выполнится ровно один раз? Что за детский сад ... "боязно", "где-то прочитал", "как захотят". Надо просто брать и смотреть конкретный запрос. Смотреть план (EXPLAIN) и всё прекрасно станет видно, что сколько раз выполняется). В данном конкретном случае при наличии индексов по обоим полям - ничего базе не сделается. И подзапрос естественно выполнится один раз. Любая реляционная база данных (MySQL не исключение) специально заточена для оптимального выполнения различных операций над данными, включая всякие подзапросы и джойны. Сколько у вас всего статей? Тысяча, что тысяч, миллион? Да у вас питон быстрее просядет по памяти, чем базе потребуются какие-то дополнительные оптимизации (типа денормализации) чтобы прожевать такой же объем. Гонять огромные выборки в питон и обратно, чтобы ВМЕСТО базы, самому сделать джоин - это, извините, больше на секс с резиновой женщиной похоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2016, 04:01 |
|
||
|
|

start [/forum/topic.php?fid=47&gotonew=1&tid=1832085]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
25ms |
get topic data: |
9ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 275ms |
| total: | 388ms |

| 0 / 0 |
