powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / SQL запрос - помогите!
6 сообщений из 6, страница 1 из 1
SQL запрос - помогите!
    #33280407
kashey__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
SQL запрос - помогите!
    #33280457
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я понял, что ничего не понял.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
SQL запрос - помогите!
    #33280479
kashey__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
зная один из номеров таблицы msg необходимо узнать номера, которые находяться в одной строке с ним(причем знаемый номер может находиться как в столбе fromwho так и в towho)

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

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

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

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


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