ここには 3 つのテーブルがあり、それらに対してトリッキーな複合クエリを実行しようとしています。
表 1(チーム) にはチームが含まれています。
id name
------------
150 LA Lakers
151 Boston Celtics
152 NY Knicks
表 2(scores) にはスコアが含まれています。
id teamid week score
---------------------------
1 150 5 75
2 151 5 95
3 152 5 112
テーブル 3(チケット) にはチケットがあります
id teamids week
---------------------
1 150,152,154 5
2 151,154,155 5
作成しようとしているクエリが 2 つあります。チケットをクエリするたびにこれらを合計しようとするのではなく、チケットに Weekly_score フィールドを追加しました。チームの新しいスコアが入力されるたびに、そのチーム ID を取得し、そのチーム / 週の組み合わせを持つすべてのチケットを取得し、チーム スコアの合計に基づいてすべてを更新することができます。
探している結果を取得するために、次のことを試しました(更新を試みる前に):
SELECT t.id, t.teamids, (
SELECT SUM( s1.score )
FROM scores s1
WHERE s1.teamid
IN (
t.teamids
)
AND s1.week =11
) AS score
FROM tickets t
WHERE t.week =11
AND (t.teamids LIKE "150,%" OR t.teamids LIKE "%,150")
クエリが遅いだけでなく、スコアの合計が返されないようで、リストの最初のスコアが返されるだけです。
どんな助けでも大歓迎です。