İlişkisiz kişileri bulma (API)

Oct 03 2020

APIv4'ü kullanarak belirli bir türde ilişkisi olmayan kişileri nasıl bulabilirim?

X tipi bir ilişkiye sahip olanlar hariç, çeşitli koşulları karşılayan bir tarih alanına göre sıralanan ilk n kişiyi istiyorum.

Birden çok çağrı veya php döngüsü ile yapılabilecek çeşitli yollar vardır, ancak bunu tek bir çağrıda yapabilmek güzel olurdu.

SQL'de alt sorgu kullanan bir seçenek şudur:

SELECT * FROM Contacts
WHERE <various things>
AND contact_id NOT IN (SELECT contact_id_a FROM Relationships WHERE <conditions>)
ORDER BY <something>
LIMIT <n>

APIv4 böyle bir şey üretebilir mi?

Yanıtlar

4 Coleman Oct 04 2020 at 09:29

Evet yapabilirsin! APIv4 Explorer ile biraz uğraştım ve şunu buldum:

İşin püf noktası, RelationshipCachehariç tutmak istediğiniz ilişki türlerine katılmaktır '"Parent of"'(bir alanın adını veya başka bir SQL ifadesini değil, bir dize değişmezini ilettiğiniz için çift tırnakların gerekli olduğunu unutmayın ). Ve sonra WHERE yan tümcesinde, communication_cache.id'nin NULL olmasını istediğinizi belirtin.

Bu GroupBygereklidir, çünkü bağlantınız, kişinin birden fazla ilişkisi varsa potansiyel olarak yinelenen sonuçlar üretebilir, ancak teknik olarak bu sorgu ile bu imkansız olsa da, yani, onu bırakmayı deneyebilirsiniz.