SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 03.02.2013 00:21:00

Black_Elk
Участник
Зарегистрирован: 04.12.2012
Сообщений: 9

помогите составить запрос :)

база  lgsl
зная значение steam_id надо обратиться в таблицу acp_players. найти его  в колонке steamid и узнать значение из userid
далее зная userid идем в acp_users и вытаскиваем значение username
заранее спасибо

Неактивен

 

#2 03.02.2013 00:33:41

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: помогите составить запрос :)

Попробуйте

use lgsl;

select username from acp_users where userid=(select user_id from acp_players where steam_id=ИЗВЕСТНОЕ_ВАМ_ЗНАЧЕНИЕ_STEAM_ID);

или

select username from acp_users JOIN acp_players USING(user_id) where steam_id=ИЗВЕСТНОЕ_ВАМ_ЗНАЧЕНИЕ_STEAM_ID;

 


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 03.02.2013 03:32:24

Black_Elk
Участник
Зарегистрирован: 04.12.2012
Сообщений: 9

Re: помогите составить запрос :)

вот же блин smile
как измениться запрос - если в acp_users, столбик userid называется uid ?smile

Неактивен

 

#4 03.02.2013 04:22:06

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: помогите составить запрос :)

use lgsl;

select username from acp_users where uid=(select user_id from acp_players where steam_id=ИЗВЕСТНОЕ_ВАМ_ЗНАЧЕНИЕ_STEAM_ID);

или

select au.username from acp_users au JOIN acp_players ap ON au.uid=ap.user_id) where steam_id=ИЗВЕСТНОЕ_ВАМ_ЗНАЧЕНИЕ_STEAM_ID;
 


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 03.02.2013 05:35:37

Black_Elk
Участник
Зарегистрирован: 04.12.2012
Сообщений: 9

Re: помогите составить запрос :)

большое спасибо, запрос
SELECT username
FROM acp_users
WHERE uid = (
SELECT userid
FROM acp_players
WHERE steamid = 'STEAM_0:0:20675627' );
вернул то, что надо.
последний, вопросик smile
что добавить сюда:
SELECT userid
FROM acp_players
WHERE steamid = 'STEAM_0:0:20675627' - что бы брало первый попавшийся userid ?
а то если 2 вываливается ошибка

Неактивен

 

#6 03.02.2013 05:47:42

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: помогите составить запрос :)

Black_Elk написал:

большое спасибо, запрос
SELECT username
FROM acp_users
WHERE uid = (
SELECT userid
FROM acp_players
WHERE steamid = 'STEAM_0:0:20675627' );
вернул то, что надо.

Хмм, запрос с JOIN'ом не вернул корректного результата?

Black_Elk написал:

последний, вопросик smile
что добавить сюда:
SELECT userid
FROM acp_players
WHERE steamid = 'STEAM_0:0:20675627' - что бы брало первый попавшийся userid ?
а то если 2 вываливается ошибка

ограничение, чтобы один элемент возвращался стоит добавить.
SELECT userid FROM acp_players WHERE steamid = 'STEAM_0:0:20675627' LIMIT 1


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#7 03.02.2013 10:34:11

Black_Elk
Участник
Зарегистрирован: 04.12.2012
Сообщений: 9

Re: помогите составить запрос :)

у первого запроса структура понятна и проста smile
второй тоже рабочий, и возвращает 2 ответа

еще раз, большое спасибо

Неактивен

 

#8 03.02.2013 10:41:34

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: помогите составить запрос :)

Добавьте в конце запроса с JOIN
LIMIT 1
, и тоже будет возвращать одну строку smile


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

Board footer

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