|
MySQL.RU - Webboard
Вернуться
need help - оптимизация запроса (j-walker) 26/09/2005 - 12:13:08
Re: need help - оптимизация запроса [поправка] (j-walker) 26/09/2005 - 12:14:20
> Original message text:
> From: j-walker - 26/09/2005 - 12:13:08
> Subject:need help - оптимизация запроса
> -----------------
> Речь о том, что в трех колонках таблицы содержится однотипная информация. Мне необходимо собрать уникальные значения из всех трех колонок в один столбец одной таблицы. Т.е. не уникальные комбинации трех полей, а значения, уникальные для всех и каждого из трех столбцов.
>
> Вот такой у меня получился запрос.
>
> select distinct man from
> (
> SELECT * FROM
> ( select payer_by_rw as man from orders
> where
> sender_by_rw='$id' or
> sender_by_bill='$id' or
> receiver_by_rw='$id' or
> receiver_by_bill='$id' or
> payer_by_rw='$id' or
> payer_by_bill='$id' )
> AS DERIVED1
> UNION
> SELECT * FROM
> ( select sender_by_rw as man from orders
> where
> sender_by_rw='$id' or
> sender_by_bill='$id' or
> receiver_by_rw='$id' or
> receiver_by_bill='$id' or
> payer_by_rw='$id' or
> payer_by_bill='$id' )
> AS DERIVED2
> UNION
> SELECT * FROM
> ( select receiver_by_rw as man from orders
> where
> sender_by_rw='$id' or
> sender_by_bill='$id' or
> receiver_by_rw='$id' or
> receiver_by_bill='$id' or
> payer_by_rw='$id' or
> payer_by_bill='$id' )
> AS DERIVED3
> UNION
> SELECT * FROM
> ( select payer_by_bill as man from orders
> where
> sender_by_rw='$id' or
> sender_by_bill='$id' or
> receiver_by_rw='$id' or
> receiver_by_bill='$id' or
> payer_by_rw='$id' or
> payer_by_bill='$id' )
> AS DERIVED4
> UNION
> SELECT * FROM
> ( select sender_by_bill as man from orders
> where
> sender_by_rw='$id' or
> sender_by_bill='$id' or
> receiver_by_rw='$id' or
> receiver_by_bill='$id' or
> payer_by_rw='$id' or
> payer_by_bill='$id' )
> AS DERIVED5
> UNION
> SELECT * FROM
> ( select receiver_by_bill as man from orders
> where
> sender_by_rw='$id' or
> sender_by_bill='$id' or
> receiver_by_rw='$id' or
> receiver_by_bill='$id' or
> payer_by_rw='$id' or
> payer_by_bill='$id' )
> AS DERIVED6
> ) AS MAINTABLE1
> where man is not null
> and man != ''
>
From: j-walker - 26/09/2005 - 12:14:20
Subject:need help - оптимизация запроса [поправка]
-----------------
Шести столбцов конечно, не трех.
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
24152
|
|