|
|
|
как сделать запрос?
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Есть следующие таблицы: таблица t1 с полем id1 - первичный ключ таблица t2 с полем id2 - первичный ключ таблица t3, которая организует связь многие ко многим для приведенных выше таблиц, с полями id1_3,id2_3 И есть список (таблица t4) с полем id1_4 все элементы которого являются подмножеством таблицы t1. Вопрос №1: Как выбрать только те строки t2 у которых ВСЕ соответствующие элементы id1_3 (через таблицу t3) входят в таблицу t4. Вопрос №2: То же что и выше, но в таблицу t4 не входят 1,2,3 и т.д. элементов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2016, 22:04 |
|
||
|
как сделать запрос?
|
|||
|---|---|---|---|
|
#18+
vartadanКак выбрать только те строки t2 у которых ВСЕ соответствующие элементы id1_3 (через таблицу t3) входят в таблицу t4. После соответствующего связывания сгруппировать по t2 и убедиться, что count-ы по t3 и t4 равны. vartadanТо же что и выше, но в таблицу t4 не входят 1,2,3 и т.д. элементов. Ну а тут разность посчитать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2016, 22:52 |
|
||
|
как сделать запрос?
|
|||
|---|---|---|---|
|
#18+
Akina, Получилось что-то вроде этого SELECT (select count(*) from t4),COUNT(t2.id2), t2.id2 FROM t4 left join t3 on t4.id1_4=t3.id1_3 left join t2 on t3.id2_3=t2.id2 group by t2.id2 Результат получился такой (select count(*) from t4)|COUNT(t2.id2)|t2.id2 84|15|2072 84|15|9275 84|14|8800 но для ответа на вопрос №1 нужно в вышеуказанный запрос добавить что-то типа select count(*) from t3 where t3.id2_3='2072' а как это сделать подскажите, пожалуйста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2016, 21:41 |
|
||
|
как сделать запрос?
|
|||
|---|---|---|---|
|
#18+
vartadanПолучилось что-то вроде этого Близко не лежало. Выкладывайте (под спойлер с теге SRC) протестированные (!!!) запросы формирования структуры и наполнения таблиц и показывайте желаемый на этих данных результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 09:54 |
|
||
|
как сделать запрос?
|
|||
|---|---|---|---|
|
#18+
Код: 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. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. Ответ: на вопрос №1 id2 3 на вопрос №2 id2|col 4|1 2|2 1|3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 18:02 |
|
||
|
как сделать запрос?
|
|||
|---|---|---|---|
|
#18+
на вопрос №1: Код: sql 1. 2. 3. 4. 5. на вопрос №2 - не понятно что значит: " не входят 1,2,3 и т.д. элементов ". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 20:17 |
|
||
|
как сделать запрос?
|
|||
|---|---|---|---|
|
#18+
на вопрос №2 (если я правильно догадался): Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 20:31 |
|
||
|
как сделать запрос?
|
|||
|---|---|---|---|
|
#18+
Громыхатель, Это значит что 1,2 или 3 элемента из множества типа (select id1_3 from t3 where t3.id2_3=X) не входит во множество t4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2016, 20:34 |
|
||
|
как сделать запрос?
|
|||
|---|---|---|---|
|
#18+
Тестирую на Денвере, в таблице t1 - 760 записей, t2 - 5000 записей, t3 - 230000 записей, t4 - 80 записей. После десяти минут выполнения запроса никакого ответа так и не получил - надоело ждать, завершил процесс. Вопрос - это денвер такой медленный или количество записей действительно слишком большое? Как можно ускорить выполнение запроса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2016, 23:27 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=102&tid=1831805]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
19ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 382ms |

| 0 / 0 |
