|
|
|
Сложное хранение доп. полей. Гуру помогите - горит проект.
|
|||
|---|---|---|---|
|
#18+
Всем привет. Заранее благодарен всем кто откликнется. Суть проекта - доска объявлений, аналог авито, только для недвижимости. Гуглил готовые варианты - подходящих кандидатов не нашел. Решил писать велосипед. Заглохло все на доп. параметрах. Есть 3 таблицы(их больше, но играют роль сейчас только 3). ci_board - Хранение основной инфы: заголовок, ид, ид пользователя который добавил и т.п. ci_board_tv -Хранение значений доп параметров. ид доп параметра, ид основной записи(ci_board) значение доп параметра(int) ci_board_tv_types - типы до параметров(int,text,number и тп) Структура таблиц ci_board Код: 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. ci_board_tv Код: 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. 44. 45. 46. 47. 48. ci_board_tv_types Код: 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. Начинаю делать выборку с фильтрацией по доп параметрам Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Не получается сделать так что бы можно было корректно выводить из таблицы ci_board значения которые фильтруются по значениям из таблицы ci_board_tv, т.е. " WHERE (ci_board_tv.tv_id = 1 AND ci_board_tv.value = 2) AND (ci_board_tv.tv_id = 2 AND ci_board_tv.value = 3) AND ... ". Не могу понять как фильтровать поля когда к 1й записи в 1й таблице относятся N записей в другой. Помогите :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2014, 01:20:43 |
|
||
|
Сложное хранение доп. полей. Гуру помогите - горит проект.
|
|||
|---|---|---|---|
|
#18+
либо так Код: sql 1. 2. 3. 4. 5. 6. либо Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2014, 06:07:27 |
|
||
|
Сложное хранение доп. полей. Гуру помогите - горит проект.
|
|||
|---|---|---|---|
|
#18+
я пишу такие джойны так: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Mlexion, А тут WHERE (ci_board_tv.tv_id = 1 AND ci_board_tv.value = 2) AND (ci_board_tv.tv_id = 2 AND ci_board_tv.value = 3) AND ... наверное имелось в виду это? WHERE ( (ci_board_tv.tv_id = 1 AND ci_board_tv.value = 2) OR (ci_board_tv.tv_id = 2 AND ci_board_tv.value = 3) OR ... ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2014, 06:11:14 |
|
||
|
Сложное хранение доп. полей. Гуру помогите - горит проект.
|
|||
|---|---|---|---|
|
#18+
bochkov , cgfcb,j - это почти то. Но если использовать OR в Код: sql 1. 2. то получается что это не точный поиск по совпадению записей. А если использовать AND то он не находит не одну и это логично. Может как то можно перестроить запрос или разбить его на 2,3 запроса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2014, 11:28:04 |
|
||
|
Сложное хранение доп. полей. Гуру помогите - горит проект.
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2014, 14:47:52 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38582987&tid=1835132]: |
0ms |
get settings: |
8ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
59ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 320ms |

| 0 / 0 |
