次のSQLクエリは、label_itemsに指定された名前を持つlabel_item_listsを見つけることを目的としています。2つのEXISTSステートメントが期待どおりに動作しないSQLクエリー
SELECT lils.id FROM label_item_lists AS lils
INNER JOIN label_items AS items ON lils.id = items.label_item_list_id
WHERE EXISTS(SELECT * FROM label_item_lists WHERE items.name=?)
OR EXISTS(SELECT * FROM label_item_lists WHERE items.name=?)
label_item_listsのIDを正しく返します。いずれかの名前の項目を持つリスト。ただし、ORではなくAND演算子を使用した同じクエリは結果を返しません。
明らかに、両方の名前に一致するlabel_itemsを持つlabel_item_listエントリがあります。実際、OR SQLクエリはこれらのエントリに対してIDを2回返しますが、ANDクエリは結果を返しません。このような理由から、EXISTSでこれらのJOINされたクエリがどのように機能するかに関する重要な情報が不足している可能性があります。助けてくれてありがとう!
----------------------------------------------------------------
| label_items | id | name | label_item_list_id |
----------------------------------------------------------------
| Row1 | 1 | foo | 1 |
----------------------------------------------------------------
| Row2 | 2 | bar | 1 |
----------------------------------------------------------------
| Row3 | 3 | bar | 2 |
----------------------------------------------------------------
--------------------------------
| label_item_lists | id |
--------------------------------
| Row1 | 1 |
--------------------------------
| Row2 | 2 |
--------------------------------
私はそれだけで私は、「foo」と「bar」を探しています二つの名前のいずれかを持っているように、第1 label_item_listではなく、秒を返すようにしたいです。
サンプルデータと希望の出力をフォーマットされたテキスト(イメージではなく)で共有する – zarruq
投稿を編集してデータを追加しました。私はこれがあなたが探していたものだと願っています! –
'items.name =? 'と推測できませんので、完全な質問をしてください。 – Susang