|
Надо попытаться сделать всё одним запросом!
|
|||
---|---|---|---|
#18+
Я всегда юзал MSSQL... А вот сейчас нужно сделать один запрос в MySQL-е... Помогите люди добрые... Я полный дуб в MySQL... Есть 3 таблицы... 1. таблица а : agent_id, fname, lname (agent_id --> primary key, auto_increment) 2. таблица al : lead_id, agent_id, cstid (lead_id --> primary key, auto_increment) 3. таблица c : cstid, firstname, lastname (cstid --> primary key, auto_increment) В таблице а хранится информация агентов.... В с - информация lead-ов а в al всё это связывается... То есть: В таблице с храняться записи... Эти записи принадлежат какому-то агенту (связи хранятся в al )... он может передать их другому агенту... во время передачи старая запись не удаляется... а просто добавляется новая запись с той же самой информацией где меняется только поле agent_id... старая запись остаётся нетронутой... но она хоть и имеет в поле agent_id старого хозяина - ему не принадлежит, то есть запись является невалидной... старые записи остаются для истории... Теперь... вот задача... Надо попытаться вытащить одним запросом (в принципе не обязательно одним... просто нужно логичное, оптимизированное решение) все валидные lead-ы принадлежащие какому-то агенту... В MSSQL-е это сделалось очень быстро... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
А как сделать что-то подобное в MySQL? Всё это дело будет использоваться в ColdFusion-е... Одно решение в принципе есть... но оно плохое... Делается сначала cfquery и вычисляются все валидные lead_id.... Затем делается второй cfquery где просто подставляются lead_id... что-то наподобие этого: Код: plaintext 1. 2. 3. 4. 5. 6. 7.
где validLeadsList = 1,2,3,45,67,78,89, etc НО вся проблема в том что validLeadsList может быть оооооочень большим... то есть валидных lead-ов может быть за несколько миллионов... Это смерть ColdFusion-у... ПАМАГИТЕ!!! Не дайте умереть незнайкой... ЗЫ... Варианты поменять что-то в логике работы не проходят... К сожалению... Не удалось убедить клиента :-( ЗЗЫ принимаются к обсуждение любые варианты... Кроме уговора клиента... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2003, 04:18 |
|
Надо попытаться сделать всё одним запросом!
|
|||
---|---|---|---|
#18+
я всегда предлагаю having, а mahoune - временные таблицы. давайте подождем его ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2003, 10:05 |
|
Надо попытаться сделать всё одним запросом!
|
|||
---|---|---|---|
#18+
2fedd, в последнее время я в некоторых случаях начал использовать HAVING. А как тут HAVING вкрячить, я не соображу пока... Помоему проще через TEMPO... ну в общем понятно! Единственное я с HAVING заметил занятную вещь. Если есть запрос типа: Код: plaintext 1. 2. 3. 4.
В итоге поле MyCount будет идти не попорядку! (По понятным причинам) 2teachxiv, Делай выводы! P.S. А что LEFT OUTER JOIN делает и чем от LEFT JOIN отличается? mahoune ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2003, 10:27 |
|
Надо попытаться сделать всё одним запросом!
|
|||
---|---|---|---|
#18+
> P.S. А что LEFT OUTER JOIN делает и чем от LEFT JOIN отличается? да вроде ничем. лефт и райт - все внешние (outer) объединения, а вот inner - он не бывает ни правым ни левым. типа того ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2003, 10:39 |
|
Надо попытаться сделать всё одним запросом!
|
|||
---|---|---|---|
#18+
и вобще, отстал я. у меня ни временных таблиц, ни @count (переменных) не бывает в моей моське, ни триггеров, ни ХП... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2003, 10:42 |
|
Надо попытаться сделать всё одним запросом!
|
|||
---|---|---|---|
#18+
2 mahoune А поподробнее с временными таблицами можно? Обьясните пожалуйста как первоклашке... ЗЫ... забыл сказать... сервер под которым это делается - 3.23.49 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2003, 14:27 |
|
Надо попытаться сделать всё одним запросом!
|
|||
---|---|---|---|
#18+
Берем твой запрос к MSSQL Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
И делаем следующее: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Как то так! mahoune ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2003, 14:51 |
|
Надо попытаться сделать всё одним запросом!
|
|||
---|---|---|---|
#18+
2 mahoune, не по сабжу ... Скажи, а каким тегом задаётся Font Name при написании сообщений в этом форуме. ищё раз извиняюсь... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2003, 15:16 |
|
Надо попытаться сделать всё одним запросом!
|
|||
---|---|---|---|
#18+
"font name" никак не задаеться ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2003, 15:26 |
|
Надо попытаться сделать всё одним запросом!
|
|||
---|---|---|---|
#18+
А это как было? я имею ввиду Courier New? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2003, 15:32 |
|
Надо попытаться сделать всё одним запросом!
|
|||
---|---|---|---|
#18+
А тут нету font name \r \r А так тебе сюда. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2003, 15:34 |
|
Надо попытаться сделать всё одним запросом!
|
|||
---|---|---|---|
#18+
спасибо, конечно, за ссылку, но там про шрифт нету ни слова :(( ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2003, 15:38 |
|
Надо попытаться сделать всё одним запросом!
|
|||
---|---|---|---|
#18+
Еще сюда!\r \r mahoune ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2003, 15:38 |
|
Надо попытаться сделать всё одним запросом!
|
|||
---|---|---|---|
#18+
Пасиба!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2003, 15:42 |
|
|
start [/forum/topic.php?fid=47&msg=32266669&tid=1855776]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
3ms |
others: | 312ms |
total: | 465ms |
0 / 0 |