私は現在、私たちのサーバーをJavaからPython(Django)に切り替えており、ORMを使用してSQLクエリを再作成しています。同じテーブル。以下は、クエリDjango ORMを使用して同じテーブルに結合する
SELECT U1.suser, COUNT(U1.id) FROM United U1 INNER JOIN United U2 ON
U1.sUser = U2.pUser WHERE U2.sUser IN (select sUser from united where pUser = '105660')
and U1.pUser = '105660' and U1.sUser IN ('580664','1015396') GROUP BY U1.id, U1.suser
は、これは私のモデルです。
class United(models.Model):
id = models.IntegerField(primary_key=True)
puser = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, db_column='puser')
suser = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, db_column='suser',
related_name='secondary_united')
date = models.DateTimeField(max_length=34, blank=True, null=True, auto_now_add=True)
class Meta:
db_table = 'United'
unique_together = (('puser', 'suser'),)
問合せは、自分自身との相互接続数(呼び出しユーザー)とその友人のすべて(のリストを見つけるためのものですこのため、主キーのエラーのIDの)
クエリは、私はまっすぐにSQLを使用してそれをしたいどのように動作します(私はそれが(た.rawを使用して動作させることはできませんが)メソッド
django.db.models.query_utils.InvalidQuery: Raw query must include the primary key
ですが、私はORMを使ってその方法を見つけたいと思います。
申し訳ありません@ e4c5がエラーに追加されました –