3

いくつかの背景として、私がやろうとしていることは、複数のレシピを含むデータベースを作成することです。ただし、個々の材料は、元々のレシピにリンクされている必要があります。

たとえば、私はすべての個々の材料を含むテーブルを持っています。

ここに画像の説明を入力してください

そして、材料を除いたレシピが保存されているテーブル。

ここに画像の説明を入力してください

さて、 T-SQL XMLコマンドを使用して文字列を分割する方法をカバーするこの記事を見つけました。そのために使用されるコードは、次のとおりです。

SELECT
  Books.BookId,
  Books.Book,
  BookAuthors.AuthorId,
  BookAuthors.Author
FROM Books
CROSS APPLY dbo.split(Books.Authors,',') split
INNER JOIN BookAuthors ON BookAuthors.AuthorId = split.val

私が探している結果はこれに非常に似ています: ここに画像の説明を入力してください

ただし、CROSSAPPLYなどはMSSQL Serverでのみ機能し、私の質問は次のとおりです。

MySQLを使用して同じまたは非常に類似した効果を達成することは可能ですか?

助けてくれてありがとう。

4

1 に答える 1

7

これは、取得しようとしているものと完全に一致する必要があります。

SELECT
  Books.BookId,
  Books.Book,
  BookAuthors.AuthorId,
  BookAuthors.Author
FROM Books
  LEFT JOIN BookAuthors ON (find_in_set(BookAuthors.AuthorId, Books.Authors) <> 0)

この記事は非常に役に立ちました:コンマ区切りの文字列で値を見つけるMySQLクエリ

それがどのように機能するかについてさらに説明が必要な場合は、コメントを残してください。

于 2013-01-30T12:30:51.323 に答える