多対多リレーションシップを持つ2つのテーブルがあるとしましょう(つまり、リレーションシップにのみ使用される3番目のテーブルがあります)。SOCI C++データベースアクセスライブラリでテーブル関係を管理することは可能ですか
SOCIはステートメント内のさまざまなタイプの「結合」をサポートしていますか?
「はい」の場合は、すべてのデータベース(ドキュメントのバックエンドと呼ばれます)で動作しますか?
ありがとうございます!
多対多リレーションシップを持つ2つのテーブルがあるとしましょう(つまり、リレーションシップにのみ使用される3番目のテーブルがあります)。SOCI C++データベースアクセスライブラリでテーブル関係を管理することは可能ですか
SOCIはステートメント内のさまざまなタイプの「結合」をサポートしていますか?
「はい」の場合は、すべてのデータベース(ドキュメントのバックエンドと呼ばれます)で動作しますか?
ありがとうございます!
SOCIでは、依然としてSQL文を作成する必要があります。その場合はjoin
を入れることができます。 SOCIは、基本的にはちょうどあなたが
into(...)
とrowset
などとの)素敵な方法で返された結果で動作するようにしてuse(...)
で)SQLクエリにあなたの入力データを取得するのに役立ちます。select
の結果は、行のリストだけであるので、関係なく、あなたがjoin
かを使用するかどうか、それらを使用してからあなたを止めるものは何もありません。
ありがとう! これは、SQLクエリが基礎となるデータベース・ドライバに直接渡されることを意味しますか? SOCIは、異なるデータベース間でSQL形式の相違点についていくつかの修正を行っていますか? – unludo
AFAIK、SOCIはそういうことをしません。あなたはSOCIの上でこれを行う必要があります。 –
結合はデータベースレベルであり、クエリレベルではありません。 – DumbCoder
@DumbCoder select ... joinを行うことができるので、クエリレベルにもなります。 – unludo
申し訳ありませんが、より明確になったはずです。結合はselect文に置かれますが、DbレベルのDbエンジンでのみ使用されます。あなたのステートメント/エディタ(もしあれば)は、あなたが結合語を入れてもしなくても、最適化をしないかどうか気にしません。 – DumbCoder