2017-01-28 3 views
-1

mysqlの結合と結合のクエリについて混乱します。私は結合をした後、データがSELECT *クエリを実行した後に返される方法と同様に、コールバック関数に返されるデータがありますか?その場合、結合クエリから返されるデータには両方のテーブルの列のデータがありますか?たとえば、表のユーザーに列名があり、表のポストに列のポストがある場合、結合後に戻されるデータは両方の列にアクセスできますか。 data.nameやdata.postsなど?MySqlの結合とクエリ後のデータ

+0

選択クエリで結合を使用すると、選択クエリのままになります。クエリによって返されるデータは、クエリ自体によって決定されます。 – Shadow

+0

'JOIN'を使ってデータがどのように取得されるのか、ちょっと混乱しているようです。 'SELECT u.name、p.posts AS u JOINはAS pを投稿しますu.user_id = p.user_id'。 'SELECT'のカラム名の前にテーブル名やそのエイリアス(ここでは' u'と 'p')を付けるとよいでしょう。クエリ自体について言えば、 'SELECT'に特別にインクルードしているカラムだけがアクセス可能(表示可能)になります。プログラミング言語の観点からは、結果セット全体が返されるため、 'SELECT'に含まれるどのカラムにも変数でアクセスすることができます。たとえば、PHP: '$ data ['col']' –

答えて

2

はい、結合は1つのテーブルから行を取り出し、別のテーブルの一致する行と並べて配置するようなものです。その結果、列の幅が広がり、最初の表の列と2番目の表の列が表示されます。

結合の結果は、それ自体が列を持ち、列に名前とデータ型があるという点で、表自体と似ています。

これは、テーブルを使用して別のテーブルに参加することもできます。

これは、1970年にリレーショナルデータベースが発明されたときに非常にエキサイティングなものでした。クエリで実行できる操作はすべて、結果をテーブルとして扱うことができます。したがって、より強力なクエリを構築し続けることができます。

算術を考えてください。

2 + 2 = 4 

これらはあなたが一緒に追加して、それが別の整数を返すことに、二つの整数です。さらに、算術式の結果であっても、さらに別の算術演算で任意の整数を使用できます。

  • プロジェクション、特定の列のサブセット命名:
    4 + 3 = 7 
    

    だから、リレーショナルデータベースで、あなたは結果を生み出すいくつかのことを行うことができます。
  • 選択、条件に一致する行のサブセットを検索する条件を適用します。
  • の名前を変更し、結果セットの列には、元のテーブルの列とは異なる名前が付けられます。
  • に参加して、あるテーブルの行を別のテーブルの行に一致させます。
  • アグリゲーション列の総数を求める列の最小値または最大値を見つけるなど、行のグループを使用して何かを実行します。

算術と同様に、これらの操作の複雑な組み合わせを構築できます。