У меня есть следующий сценарий:mysql где IN на большом наборе данных или Looping?
Table 1:
articles
id article_text category author_id
1 "hello world" 4 1
2 "hi" 5 2
3 "wasup" 4 3
Table 2
authors
id name friends_with
1 "Joe" "Bob"
2 "Sue" "Joe"
3 "Fred" "Bob"
Я хочу знать, общее число авторов, которые являются друзьями с «Bob» для данной категории.
Так, например, для категории 4 столько авторов, которые дружат с «Боб».
В таблице авторов довольно большой, в некоторых случаях, у меня есть миллион авторы, которые являются друзьями с «Bob»
Так что я пробовал:
Получить список авторов, которые являются друзьями с Бобом, и затем прокрутите их и получите счетчик для каждой из них данной категории и суммируйте все это вместе в моем коде.
Проблема с этим подходом заключается в том, что он может генерировать миллион запросов, хотя они очень быстрые, кажется, что должен быть лучший способ.
Я думал о попытке получить список авторов, дружащих с bob, а затем создав предложение IN с этим списком, но я боюсь, что это сдует память, разрешенную в наборе запросов.
Похоже, что это распространенная проблема. Есть идеи?
благодаря
Я не знаю, это настоящий образец, но я думаю, что отношения дружбы многим многим, и вы должны хранить эти данные в отдельной таблице авторов. – adopilot