Согласно документации pandas, для итерации строк вы должны использовать:
df.iterrows()
, как указано в http://pandas.pydata.org/pandas-docs/stable/reference/api/ pandas.DataFrame.iterrows.html # pandas.DataFrame.iterrows
Оберните их и используйте подзапросы:
SELECT
(SELECT COUNT(*) FROM Toys WHERE little_kid_id = 900)+
(SELECT COUNT(*) from Games WHERE little_kid1 = 900
OR little_kid2 = 900
OR little_kid3 = 900)
AS SumCount
Вуаля!
SELECT COUNT(1) FROM
(
SELECT 1 FROM Toys WHERE little_kid_id = 900
UNION
SELECT 1 FROM Games WHERE little_kid1 = 900
OR little_kid2 = 900
OR little_kid3 = 900
)
В зависимости от того, насколько часто этот запрос будет выполняться, и как часто при изменении данных вы можете периодически помещать данные в агрегированную таблицу, например:
CREATE TABLE aggregated (
little_kid_id INT UNSIGNED,
games_count INT UNSIGNED,
toys_count INT UNSIGNED,
PRIMARY KEY (little_kid_id)
);
С точки зрения производительности, это будет ** быстро и быстро избегает неприятных подзапросов.