|
|
|
помогите с заспросом.
|
|||
|---|---|---|---|
|
#18+
имеется БД с такое структурой: Таблица Human HumanID int(10) HumanName varchar(100) HumanPhone varchar(100) HumanEmail varchar(128) Description text Age int(2) Tall int(3) Weight int(3) HairTypeID int(10) EyeColorID int(10) CityID int(10) UserID int(10) IsApproved enum('yes', 'no') SortOrder tinyint(4) AtFirstPage enum('yes', 'no') AddDate date Таблица Cities CityID int(10) CityName varchar(50) SortOrder tinyint(4) Таблица Pics PicID int(10) HumanID int(10) PicName varchar(100) PicFileName varchar(255) MimeType varchar(20) IsApproved enum('yes', 'no') SortOrder tinyint(4) Таблица Human и Pics связаны по полю HumanID. Необходимо выбрать из Human записи с соответствующими записями из Pics, чтоб каждой записи из Human соответствовала только одна из Pics. Если в Pics нету соответствия то NULL. В Pics может быть несколько соответствующих записей. Если их несколько то выбирается только одна. Я написал запрос: Код: plaintext 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. Вот только соответствующие записи из Pics (вложенный INNER JOIN) как-то непонятно срабатывает. Если LIMIT убрать то соответствующие выбираются правильно (но мне нужна только одна), если ставлю, то все записи выбранные из Human кроме одной получают соответствие из Pics равное NULL. Подскажите, плиз, где что у меня неправильно. И если кто знает подскажите как можно из вложенного запроса сослаться на поля из внешнего запроса? Я хотел поставить в INNER JOIN таблице соответствие h.HumanID=p.HumanID, но MySQL ругается матом, и говорит что объект не найден. Как можно решить эту задачку также? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2005, 14:20 |
|
||
|
помогите с заспросом.
|
|||
|---|---|---|---|
|
#18+
Так должно работать, в MSSQL работает. Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2005, 14:40 |
|
||
|
помогите с заспросом.
|
|||
|---|---|---|---|
|
#18+
Ошибочка вышла. Так правильнее Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2005, 14:48 |
|
||
|
помогите с заспросом.
|
|||
|---|---|---|---|
|
#18+
не получается. я так пробовал, но все равно пишет: таблица h не найдена. Как из подзапроса установить связь с внешним запросом - вот в чем проблемма. Как сделать, помогите плиз!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2005, 18:00 |
|
||
|
помогите с заспросом.
|
|||
|---|---|---|---|
|
#18+
MySQL 4.1.10 у меня стоит. по-моему должен быть метод решения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2005, 18:03 |
|
||
|
помогите с заспросом.
|
|||
|---|---|---|---|
|
#18+
Я в MySQL не писал, но в SQL синтаксис такой Код: plaintext 1. 2. 3. 4. , а не Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2005, 18:11 |
|
||
|
помогите с заспросом.
|
|||
|---|---|---|---|
|
#18+
Matvey BЯ в MySQL не писал, но в SQL синтаксис такой Код: plaintext 1. 2. 3. 4. , а не Код: plaintext 1. 2. 3. 4. Это гон. Ибо в стандарте Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2005, 12:10 |
|
||
|
помогите с заспросом.
|
|||
|---|---|---|---|
|
#18+
Вот так попробуй: Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2005, 13:28 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=33090582&tid=1854003]: |
0ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
188ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 510ms |

| 0 / 0 |
