SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 05.10.2011 20:03:19

ickyman
Участник
Зарегистрирован: 05.10.2011
Сообщений: 3

Объединение запросов - duplicate column name

Привет. Помогите пожалуйста соединить два запроса, каждый из них работает по отдельности, но вместе:
duplicate column name "zipcode_id"
причину нагуглил, это поле есть в обоих таблицах и выходит путаница из какой именно брать, но предложенные решения воплотить на своем запросе не получаеться, не хватает опыта, что-то не так делаю, это только часть запроса, но ошибка именно тут:

    (SELECT * FROM
        (   (SELECT * FROM jobs AS j LEFT JOIN zipcode AS z ON z.zipcode_id=j.zipcode_id WHERE 1 AND source='student'
                  ORDER BY postdate DESC LIMIT 20) ORDER BY search_order DESC )
    s1)
        UNION ALL
    (SELECT * FROM
            (   (SELECT * FROM jobs AS j LEFT JOIN zipcode AS z ON z.zipcode_id=j.zipcode_id WHERE 1 AND source='teacher'
                   ORDER BY postdate DESC LIMIT 30, 1000000) ORDER BY postdate DESC )
    s2)

Неактивен

 

#2 05.10.2011 20:15:26

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Объединение запросов - duplicate column name

В приведенной части ошибки нет. Покажите полностью запрос.

Неактивен

 

#3 05.10.2011 20:30:13

ickyman
Участник
Зарегистрирован: 05.10.2011
Сообщений: 3

Re: Объединение запросов - duplicate column name

по отдельности они оба работают и возвращают правильную выборку, вместе нет, вот весь
   
(SELECT * FROM
        ( (SELECT * FROM jobs AS j LEFT JOIN zipcode AS z ON z.zipcode_id=j.zipcode_id WHERE 1 AND (6378 * acos(sin(radians(X(z.zipcode_geo)))
                * sin(radians(X((SELECT zipcode_geo FROM zipcode WHERE 1 AND zipcode_id=8011)))) + cos(radians(X(z.zipcode_geo)))
                * cos(radians(X((SELECT zipcode_geo FROM zipcode WHERE 1 AND zipcode_id=8011))))
                * cos(radians(Y((SELECT zipcode_geo FROM zipcode WHERE 1 AND zipcode_id=8011))) - radians(Y(z.zipcode_geo)))) < 150)
                AND source='student'
                  ORDER BY postdate DESC LIMIT 20) ORDER BY search_order DESC )
    s1)
        UNION ALL
    (SELECT * FROM
            (  (SELECT * FROM jobs AS j LEFT JOIN zipcode AS z ON z.zipcode_id=j.zipcode_id WHERE 1 AND (6378 * acos(sin(radians(X(z.zipcode_geo)))
                * sin(radians(X((SELECT zipcode_geo FROM zipcode WHERE 1 AND zipcode_id=8011)))) + cos(radians(X(z.zipcode_geo)))
                * cos(radians(X((SELECT zipcode_geo FROM zipcode WHERE 1 AND zipcode_id=8011))))
                * cos(radians(Y((SELECT zipcode_geo FROM zipcode WHERE 1 AND zipcode_id=8011))) - radians(Y(z.zipcode_geo)))) < 150)
                AND source='teacher'
                  ORDER BY postdate DESC LIMIT 30, 1000000) ORDER BY postdate DESC )
    s2)

Неактивен

 

#4 05.10.2011 20:59:29

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Объединение запросов - duplicate column name

ickyman написал:

по отдельности они оба работают и возвращают правильную выборку, вместе нет,

Это не так. Выполните первую часть запроса, чтобы убедиться в этом:

SELECT * FROM
        ( (SELECT * FROM jobs AS j LEFT JOIN zipcode AS z ON z.zipcode_id=j.zipcode_id WHERE 1 AND (6378 * acos(sin(radians(X(z.zipcode_geo)))
                * sin(radians(X((SELECT zipcode_geo FROM zipcode WHERE 1 AND zipcode_id=8011)))) + cos(radians(X(z.zipcode_geo)))
                * cos(radians(X((SELECT zipcode_geo FROM zipcode WHERE 1 AND zipcode_id=8011))))
                * cos(radians(Y((SELECT zipcode_geo FROM zipcode WHERE 1 AND zipcode_id=8011))) - radians(Y(z.zipcode_geo)))) < 150)
                AND source='student'
                  ORDER BY postdate DESC LIMIT 20) ORDER BY search_order DESC ) s1;


P.S. Есть очень хорошее правило - не писать select *

Неактивен

 

#5 06.10.2011 15:28:22

ickyman
Участник
Зарегистрирован: 05.10.2011
Сообщений: 3

Re: Объединение запросов - duplicate column name

все, сделал, моя ошибка, спасибо

Отредактированно ickyman (06.10.2011 17:20:44)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson