|
|
|
SQL запрос - помогите!
|
|||
|---|---|---|---|
|
#18+
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 кто знает как написать запрос, подскажите Заранее благодарен! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2005, 09:57:54 |
|
||
|
SQL запрос - помогите!
|
|||
|---|---|---|---|
|
#18+
Я понял, что ничего не понял. ---------------------------------------- Артисты не приехали, приехали цыгане ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2005, 10:15:57 |
|
||
|
SQL запрос - помогите!
|
|||
|---|---|---|---|
|
#18+
зная один из номеров таблицы msg необходимо узнать номера, которые находяться в одной строке с ним(причем знаемый номер может находиться как в столбе fromwho так и в towho) полученные номера не должны повторяться... а зная их[полученных номеров] собственно выбрать все из таблицы usersinfo ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2005, 10:25:01 |
|
||
|
SQL запрос - помогите!
|
|||
|---|---|---|---|
|
#18+
я знаю как сделать в несколько этапов: будем выбирать отностительно юзверя с id=1 1. select towho from msg where fromwho=1 2. select fromwho from msg where towho=1 3. если есть одинаковые результаты, то оставить только один 4. из полученного в результате п.3 выбрать все из таблицы usersinfo все подскажите как это сделать с помощью одного(двух) запросов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2005, 11:13:53 |
|
||
|
SQL запрос - помогите!
|
|||
|---|---|---|---|
|
#18+
SELECT * FROM `userinfo` WHERE id IN ( SELECT DISTINCT IF ( ABS( STRCMP( fromwho, '1' ) ) , fromwho, towho ) AS x1 FROM msg ) LIMIT 0 , 30 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2005, 14:02:33 |
|
||
|
SQL запрос - помогите!
|
|||
|---|---|---|---|
|
#18+
А как же UNION? SELECT name FROM userinfo,msg WHERE msg.fromwho=userinfo.id UNION SELECT name FROM userinfo,msg WHERE msg.towho=userinfo.id Он же сам и проведёт "уникализацию" - оставит только по одному уникальному знчению в строке выбора :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2005, 12:00:56 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=646&tid=1853550]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
66ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
| others: | 199ms |
| total: | 366ms |

| 0 / 0 |
