Обновление 20161110 - оригинальный ответ ниже
Также проверьте этот ответ для другого подхода.
Оригинальный ответ
на самом деле возможно.
Но не напрямую, способ сделать это - создать вторую ссылку на auth и использовать ее для создания пользователей:
var config = {apiKey: "apiKey",
authDomain: "projectId.firebaseapp.com",
databaseURL: "https://databaseName.firebaseio.com"};
var secondaryApp = firebase.initializeApp(config, "Secondary");
secondaryApp.auth().createUserWithEmailAndPassword(em, pwd).then(function(firebaseUser) {
console.log("User " + firebaseUser.uid + " created successfully!");
//I don't know if the next statement is necessary
secondaryApp.auth().signOut();
});
Если вы не укажете с которым связано использование Firebase для работы, он будет использовать первый по умолчанию.
Источник для нескольких ссылок на приложения.
EDIT
Для фактического создания нового пользователя не имеет значения, что никого нет, или кто-то другой, кроме администратора, не аутентифицирован на второй ссылке auth, потому что для создания всей учетной записи вам нужна сама ссылка auth.
Не тестировалось следующее, но об этом можно подумать.
То, что вам нужно подумать, - это записывать данные в firebase. Обычная практика заключается в том, что пользователи могут редактировать / обновлять свою собственную информацию о пользователе, поэтому, когда вы используете вторую ссылку на auth для написания, это должно работать. Но если у вас есть что-то вроде ролей или разрешений для этого пользователя, убедитесь, что вы пишете это с помощью ссылки auth, которая имеет права доступа. В этом случае главный auth - это admin, а второй auth - вновь созданный пользователь.
Так как вопрос отмечен как MySQL, необходимо смочь использовать определенное для MySQL решение, а именно, GROUP_CONCAT. Например,
select Org_ID, Org_Address, Org_OtherDetails,
GROUP_CONCAT(employees) as Employees
from employees a, organization b
where a.org_id=b.org_id
group by b.org_id;
Исходным вопросом была конкретная база данных, но возможно это - хорошее место для включения более универсального ответа. Это - общий вопрос. Понятие, которое Вы описываете, часто упоминается как 'Конкатенация Группы'. Нет никакого стандартного решения в SQL-92 или SQL-99. Таким образом, Вам будет нужно определенное для поставщика решение.
select o.ID, o.Address, o.OtherDetails, GROUP_CONCAT( concat(e.firstname, ' ', e.lastname) ) as Employees from employees e inner join organization o on o.org_id=e.org_id group by o.org_id
select o.ID, o.Address, o.OtherDetails, STRING_AGG( (e.firstname || ' ' || e.lastname), ', ' ) as Employees from employees e inner join organization o on o.org_id=e.org_id group by o.org_id
PostgreSQL прежде 9.0 позволяет, Вы для определения собственных агрегатных функций с СОЗДАЕТЕ АГРЕГАТ. Немного больше работы, чем MySQL, но намного более гибкий. Дополнительную информацию см. в этом другом сообщении. (Конечно, PostgreSQL 9.0 и позже имеет эту опцию также.)
select o.ID, o.Address, o.OtherDetails, MY_CUSTOM_GROUP_CONCAT_PROCEDURE( o.ID ) as Employees from organization o
в MS SQL можно сделать:
create function dbo.table2list (@input int)
returns varchar(8000)
as
BEGIN
declare @putout varchar(8000)
set @putout = ''
select @putout = @putout + ', ' + <employeename>
from <employeetable>
where <orgid> = @input
return @putout
end
затем сделайте:
select * from org, dbo.table2list(orgid)
from <organisationtable>
Я думаю, что можно сделать это с, ОБЪЕДИНЯЮТ () также, но не может помнить синтаксис первое, что пришло на ум
При использовании Oracle, можно создать МН функциональное / SQL, функциональный, можно использовать в запросе, который принимает organization_id как вход и возвращает имя всех сотрудников, принадлежащих этому org как строка. Например:-
select
o.org_id,
o.org_address,
o.org_otherdetails,
org_employees( o.org_id ) as org_employees
from
organization o
Все это зависит. Если Вы делаете соединение, Вы получаете все организационные данные по каждой строке. (1 строка на сотрудника). Это имеет стоимость. Если Вы делаете два запроса. (Org и Emp), который имеет другую стоимость.
Выберите свой яд.
Короткий ответ является "нет".
Как отмечено в других ответах, существуют особенные методы поставщика достигнуть этого результата, но нет никакого чистого решения SQL, которое работает в одном запросе.
извините об этом :(
По-видимому, один из поставщика определенные решения будет работать на Вас?
Вот то, что можно сделать, у Вас есть 2 опции:
select *
FROM
users u
LEFT JOIN organizations o ON (u.idorg = o.id);
Таким образом, Вы получите дополнительные данные по каждой строке - полная информация об организации, в которой Вы действительно не нуждаетесь.
Или можно сделать:
select o.*, group_concat(u.name)
FROM
users u
LEFT JOIN organizations o ON (u.idorg = o.id)
GROUP BY
o.id
http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat
Второй подход применим, если Вы хотите видеть т.е. список имен пользователей "user1, user2, user3", но не хотите воздействовать на сами поля...