Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / SQL запрос - помогите! / 6 сообщений из 6, страница 1 из 1
21.09.2005, 09:57:54
    #33280407
kashey__
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос - помогите!
hi all

у меня есть 2 таблицы:
usersinfo (id bigint, name text, param text, primary key(id))
msg (fromwho bigint, towho bigint, content text)

-- usersinfo
id name param
1 kashey p1
2 artemk p2
3 melkiy p3
4 any p4
5 body p4

-- msg
fromwho towho content
1 2
2 1
2 1
1 2
1 2
2 1
1 3
1 3
3 1
4 1
5 2
2 1
...

надо выбрать все из usersinfo с таким условием что нам известен номер из таблицы msg, к примеру 1

выбирать по следующему правилу:
если fromwho=1, выбрать towho
или
если towho=1, выбрать fromwho,
но чтоб выбранные записи не повторялись...

результат который я хочу получить из этого примера таблицы должен выглядеть так:
id name param
1 kashey p1
2 artemk p2
3 melkiy p3
4 any p4

кто знает как написать запрос, подскажите

Заранее благодарен!
...
Рейтинг: 0 / 0
21.09.2005, 10:15:57
    #33280457
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос - помогите!
Я понял, что ничего не понял.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
21.09.2005, 10:25:01
    #33280479
kashey__
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос - помогите!
зная один из номеров таблицы msg необходимо узнать номера, которые находяться в одной строке с ним(причем знаемый номер может находиться как в столбе fromwho так и в towho)

полученные номера не должны повторяться... а зная их[полученных номеров] собственно выбрать все из таблицы usersinfo
...
Рейтинг: 0 / 0
21.09.2005, 11:13:53
    #33280640
kashey__
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос - помогите!
я знаю как сделать в несколько этапов:

будем выбирать отностительно юзверя с id=1

1. select towho from msg where fromwho=1
2. select fromwho from msg where towho=1
3. если есть одинаковые результаты, то оставить только один
4. из полученного в результате п.3 выбрать все из таблицы usersinfo
все

подскажите как это сделать с помощью одного(двух) запросов
...
Рейтинг: 0 / 0
21.09.2005, 14:02:33
    #33281239
Pavel Povoroznyuk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос - помогите!
SELECT *
FROM `userinfo`
WHERE id
IN (
SELECT DISTINCT
IF (
ABS( STRCMP( fromwho, '1' ) ) , fromwho, towho
) AS x1
FROM msg
)
LIMIT 0 , 30
...
Рейтинг: 0 / 0
16.10.2005, 12:00:56
    #33326845
skyboy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос - помогите!
А как же UNION?
SELECT name FROM userinfo,msg WHERE msg.fromwho=userinfo.id
UNION
SELECT name FROM userinfo,msg WHERE msg.towho=userinfo.id
Он же сам и проведёт "уникализацию" - оставит только по одному уникальному знчению в строке выбора :)
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / SQL запрос - помогите! / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]