Я пытаюсь обновить таблицу, чтобы назначить случайного человека из таблицы поиска. Вот общая схема:Столбец строки обновления SQL со случайным значением поиска
TableA (header),
ID int,
name varchar (30)
TableB (detail),
ID int,
fkTableA int, (foreign key to TableA.ID)
recordOwner varchar(30) null
other detail colums..
TableC (owners),
ID int,
fkTableA int (foreign key to TableA.ID)
name varchar(30)
TableA
имеет 10 записей, по одному для каждого типа продаж свинца бассейна. TableB
имеет тысячи записей для каждой строки в TableA
. Я хочу назначить правильное значение recordOwners
от TableC
до и даже количества строк каждый (или как можно ближе). TableC
будет иметь от одной записи для каждого ряда в tableA
или до 10.
Можно ли это сделать в одном заявлении? Это не обязательно. Я не могу найти оптимальный подход к скорости. Любые мысли или образцы оценены.
Обновлено:
TableA
имеет от 1 до многих судов связи с TableC
. Для каждой записи TableA
, TableC
будет иметь хотя бы одну строку, которая представляет владельца, который должен быть назначен для строки в TableB
.
TableA
int name
1 LeadSourceOne
2 LeadSourceTwo
TableC
int(id) int(fkTableA) varchar(name)
1 1 Tom
2 1 Bob
3 2 Timmy
4 2 John
5 2 Steve
6 2 Bill
TableB initial data
int(id) int(fkTableA) varchar(recordOwner) (other detail columns)
1 1 NULL ....
2 1 NULL ....
3 1 NULL ....
4 2 NULL ....
5 2 NULL ....
6 2 NULL ....
7 2 NULL ....
8 2 NULL ....
9 2 NULL ....
TableB end result
int(id) int(fkTableA) varchar(recordOwner) (other detail columns)
1 1 TOM ....
2 1 BOB ....
3 1 TOM ....
4 2 TIMMY ....
5 2 JOHN ....
6 2 STEVE ....
7 2 BILL ....
8 2 TIMMY ....
9 2 BILL ....
В основном нужно случайным образом назначить запись из tableC
в tableB
на основе отношения к tableA
.
Просим предоставить дополнительную информацию. Как отношение между таблицами A и C. Мне кажется, что они находятся в соотношении 1: 1, таблица A/C находится в соотношении 1: M с TableB. Не могли бы вы показать ожидаемый результат? Примеры данных помогут вам написать запрос. –