SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 12.04.2011 08:27:38

sotariz
Участник
Зарегистрирован: 25.03.2011
Сообщений: 10

Выборка из разных баз

Подскажите пожалуйста как сделать выборку с исключением.
Есть база в ней таблица Users в которой лежат все имена пользователей по которым мне надо сделать выборку, но в другой базе есть таблица Accounts в ней лежат данные об учетках. Все юзеры привязаны к аккаунтам.
Accounts

Код:

---------+------------+------------+-------------+
  accId  |  accName   | accessLevel|     date    +
---------+------------+------------+-------------+

Users

Код:

---------+------------+------------+-------------+
  name   |  accId     | lastOnline |   lastIp    +
---------+------------+------------+-------------+

Вот сама задача сделать выборку из таблицы Users всех пользователей у которых accessLevel в таблице Accounts ниже 3
Подскажите, пожалуйста. За ранее благодарен!

Неактивен

 

#2 12.04.2011 11:36:22

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

Re: Выборка из разных баз

select name from t_4108_Users where accId in (select accId from t_4108_Accounts where accessLevel<3);

или
select name from t_4108_Users u,t_4108_Accounts a where u.accId=a.accid and accessLevel<3;

или
select name from t_4108_Users left join t_4108_Accounts using(accid) where accessLevel<3;


Только это не выборка не из разных баз, а из разных таблиц.

И кстати, у Вас по структуре к каждому акаунту один юзер привязан? Не проще ли тогда их в одну таблицу поместить?

Отредактированно deadka (12.04.2011 11:38:43)


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

Неактивен

 

#3 12.04.2011 13:42:30

sotariz
Участник
Зарегистрирован: 25.03.2011
Сообщений: 10

Re: Выборка из разных баз

сами таблицы рассположены в разных БД т.е.
db_accoutnt.Accounts и db_user.Users (к примеру)
к 1 аккаунту может быть привязан не один юзер

хотел уточнить что означает t_4108_*?

Неактивен

 

#4 12.04.2011 14:33:17

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

Re: Выборка из разных баз

Если в разных БД, то да, в запросах нужно указывать с именем таблицы имя базы, как то db_accoutnt.Accounts и db_user.Users.
t_4108_Users - это просто название таблицы. Я нумерую таблицы у себя в базе, ставлю номер форумного топика.


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

Неактивен

 

#5 12.04.2011 16:14:08

sotariz
Участник
Зарегистрирован: 25.03.2011
Сообщений: 10

Re: Выборка из разных баз

Получилось! Спасибо большое smile

Неактивен

 

#6 12.04.2011 16:23:58

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

Re: Выборка из разных баз

Пожалуйста smile. И, если у вас в табличках будет много данных, то добавьте ключи на accid (


alter table `t_4108_Users` add key(accid);
alter table `t_4108_Accounts` add key(accid);
 

если у Вас это поле не primary key в таблице Accounts)

Отредактированно deadka (12.04.2011 16:24:23)


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

Неактивен

 

Board footer

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