私はこれらのテーブルを設定しています:
NOMINATIONS:賞のノミネート
のテーブルNOMINATION_NOMINEES:NOMINATIONS.IDにFKを持つユーザーのテーブル
1つのノミネートは、IDフィールドを介して多くのノミネート者が参照できます。
SELECT a.*, COUNT(SELECT all records from NOMINATION_NOMINEES with this ID) AS "b"
FROM NOMINATIONS a
LEFT JOIN NOMINATION_NOMINEES b on a.ID = b.ID
結果は次のようになります。
ID | NOMINATION_DESCRIPTION | ... | NUMBER_NOMINEES
ここで、NUMBER_NOMINEESは、現在の行のIDを持つNOMINATION_NOMINEESテーブルの行数です。
これはトリッキーなものです。これをより大きなシステムにフィードしているので、多数のサブクエリを使用して1つのクエリでこれを取得したいと考えています。これにサブクエリを実装することは私の心をねじりました。誰もがこれでどこに向かうべきかについての考えを持っていますか?
上記の方法は、これに対する適切なアプローチに近いものではないと確信していますが、私はこれに頭を悩ませることはできません。
これは、SELECT
句内の単一の相関サブクエリで実行できます。
SELECT a.*,
( SELECT COUNT(b.ID) FROM NOMINATION_NOMINEES b WHERE a.ID= b.ID )
FROM NOMINATIONS a
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加