私はゲームのウォークスルーの作者です。すべての基準に一致するすべての行を表示しようとしています。現在、テーブルには各テーブルの結果が表示されますが、これらの結果をマージして、検索条件がすべての入力と一致する場合は一致する行のみを返すようにします。これを達成する最良の方法は何ですか?私はUNION句の前にANDを使用しようとしていましたが、エラー#1064が返されます。SQLクエリの結果をマージする
このサンプルテーブルを用意しましょう。
+--------+-------------------------+------------+--------------+
| FAQ_ID | FAQ_Title | Game | Platforms |
+--------+-------------------------+------------+--------------+
| 32 | General Walkthrough FAQ | WWE | PS2, PSP, DS |
| 34 | Early EXP Farming FAQ | Digimon | PS4, PS Vita |
| 35 | General Walkthrough FAQ | Toy Story | PS1 |
| 36 | General Walkthrough FAQ | Metal Slug | DS |
+--------+-------------------------+------------+--------------+
は、それから私は、これが唯一の36のFAQ_IDで行を返し、残りの部分を排除しなければならない
SELECT FAQ_ID, FAQ_Title, Game, Platforms FROM faqlist WHERE FAQ_Title
LIKE 'General Walkthrough%'
AND UNION
SELECT FAQ_ID, FAQ_Title, Game, Platforms FROM faqlist WHERE Platforms = '%DS%'
AND UNION
SELECT FAQ_ID, FAQ_Title, Game, Platforms FROM faqlist WHERE Game = 'Metal Slug'
ORDER BY FAQ_ID ASC;
このコードを持っています。
ヒントを。 – Blank
正規化してください。 – Strawberry
すべての基準に一致する結果を表示したかったのです。一般的なウォークスルーとしてのユーザー入力タイプ、メタルスラッグとしてのゲーム、DSのプラットフォームの場合は、FAQ_ID 36の行のみを表示する必要があります。32,34,35は条件と一致しないため表示しないでください –