Таблица
AID PID UID
214 212 1009
213 212 1004
212 212 1002
211 210 1004
210 210 1003
Таблица F
UID FID
1000 1002
1002 1000
1000 1003
1003 1000
1000 1009
1009 1000
1009 1003
1003 1009
1004 1002
1002 1004
Я могу выполнить внутреннее объединение для этих таблиц, как это, чтобы получить AID и PID из таблицы для каждого FID пользователя, который можетполучить из таблицы F.Предположим, мой ID ID 1000, тогда для меня действия, выполненные моими друзьями, будут
SELECT AID,PID from A inner join F on A.UID = F.FID where F.UID = '1000';
, а результат будет
AID PID
214 212
212 212
210 210
Мне нужно, чтобы PID появлялся только один раз, независимо от того, какойUID это относится к.Также мне нужен PID с максимальным AID, связанным с ним.
Если попытаться сделать это, используя group by
SELECT AID,PID from A inner join F on A.UID = F.FID where F.UID = '1000'
GROUP BY PID;
, я получу
AID PID
212 212
210 210
Я хочу, чтобы результат был
AID PID
214 212
210 210
Также я хочу выполнить это, используя левое соединение, т.е. левое соединение с набором результатов предыдущего внутреннего объединенного результата.Причина, по которой я прочитал, что левое соединение выполняется быстрее по группам.Пожалуйста, постарайтесь быть эффективными с вашими запросами, так как в таблице содержится более 1,5 тыс. Кортежей, а в таблице F уже более 5000 кортежей.Они будут резко расти, как и в будущем.