|
|
|
Правильно составить подзапрос
|
|||
|---|---|---|---|
|
#18+
Добрый день, помогите или направьте в нужно направлении с запросов такого вида: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Т.е есть две таблицы. В первой содержаться : authorId, projectId, itemId Во второй содержаться: itemId , body Проблема этого запроса в том, что если body пустое, то возвращаемый результат - ноль значений (хотя это не правильно) если body не пустое, то все замечательно отрабатывает Нужно чтобы при body как пустом, так и не пустом выбирались значения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 14:21:43 |
|
||
|
Правильно составить подзапрос
|
|||
|---|---|---|---|
|
#18+
Seregas2014, left join поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 15:10:36 |
|
||
|
Правильно составить подзапрос
|
|||
|---|---|---|---|
|
#18+
Seregas2014, и еще: зачем сначала искать по таблице frk_item нужные id, а потом их подставлять как условие? почему сразу не искать where like? и еще: конкретные тормоза будут при использовании подобного подхода. like вообще операция тяжелая, а в этом случае еще и не будет использовать индекс. Причем я подозреваю, что индекса там и нет. Разумнее что title, что description - вынести в отдельные таблицы, дать им id и при поиске использовать именно числовой id, а не текстовые значения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 15:17:26 |
|
||
|
Правильно составить подзапрос
|
|||
|---|---|---|---|
|
#18+
Users, id нужны тоже (я их потом вывожу в массиве php) Индекса нет нифига все верно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 15:21:45 |
|
||
|
Правильно составить подзапрос
|
|||
|---|---|---|---|
|
#18+
Users, Ты про left join имел ввиду так? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 15:26:52 |
|
||
|
Правильно составить подзапрос
|
|||
|---|---|---|---|
|
#18+
Seregas2014, В общем, лажа это все, коллега, без обид. CASE WHEN authorId=1 THEN 'Коля' END as idname, CASE вот это подразумевает, что других id и нет, кроме Коли - во всех остальных случаях там будет Null. Далее, завтра надо вместо Коли сделать Николай - полезем в код процедуры, его менять? Должна быть отдельная таблица tbl_author в ней два поля - id_author, AuthorName где каждому id соответствует имя. далее: select m.нужныеполя, a.AuthorName from mytable m join tbl_author a on m.id_author = a.id_author -- если автор обязательное поле, если нет left join И так везде. Ненормализованная база, так нельзя писать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 15:30:56 |
|
||
|
Правильно составить подзапрос
|
|||
|---|---|---|---|
|
#18+
Users, конечно лажа я не спорю. Процедуру менять в данном случае не нужно будет. Поэтому такая лажа и делается. В крайнем случае я могу менять ее через установку значений в переменных php. Я не свой код пишу, я с готовой системой работаю, поэтому такие танцы тут идут. Подумаю. Может стоит в отдельную таблицу писать еще это все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2014, 15:36:04 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38709188&tid=1834431]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
40ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 303ms |

| 0 / 0 |
