• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:複数の条件に該当する結果を、それぞれ2件ずつ取得したい)

複数の条件に該当する結果を取得したい

このQ&Aのポイント
  • PostgreSQL 7で同一テーブルから複数の条件に該当する結果を取得したい場合、異なる値を持つ列から2件ずつ取得し、さらにランダムな2件を取得する方法について困っています。
  • SQLの例としては、'列~の値が■のものを2件、列~の値が▲のものを2件、列~の値が●のものを2件、それ以外のものからランダムに2件を取得'という条件ですが、現在のクエリでは'limit 2'でparse errorが発生してしまいます。
  • 上記のSQL定義でビューを作成する方法についても相談したいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • Ethersky
  • ベストアンサー率71% (168/235)
回答No.1

unionを使っているため、limit使用時に全体でのlimitなのか各SELECT文ごとのlimitなのかでわからずエラーになるようです。 そこで、括弧で括ってやるといいです。 ところで、■▲●で2件取得のところは ORDER BYでソートしなくていいんでしょうか? 該当する列が元々2件だけしかないなら別ですが・・・。 (select * from table where culumn = '■' limit 2) union (select * from table where culumn = '▲' limit 2) union (select * from table where culumn = '●' limit 2) union (select * from table where culumn != '■' and culumn != '▲'and culumn != '●' order by random() limit 2)

m8b
質問者

お礼

ありがとうございます。 教えていただいた方法で期待通りに動きました。 括弧でくくるという発想がでてきませんでした。基礎からやり直します。ありがとうございました。

関連するQ&A