0

MySQL-ワークベンチ(PHP):

テーブル:

  1. TUsers(TCompaniesとの1対多の関係):
    • TUsers_CompanyID(FOREIGN KEY)
    • TUsers_UserName
    • TUsers_UserPassword
    • TUsers_ID(UNIQUE)
  2. TCompanies:
    • TCompanies_CompanyName
    • TCompanies_CompanyContactNumber
    • TCompanies_CompanyAddress
    • TCompanies_ID(UNIQUE)

テーブル内のデータを複製せずに、JOINまたはINNER JOINクエリコマンドを使用せずに、リレーショナルデータベース内の複数のテーブルをリンクすることは可能ですか?

したがって、一方のテーブルが他方のデータを「指す」関係を作成する別の方法を言えば。

次のクエリを実行して、両方のテーブルからすべてのデータを一度に正常に取得できるようにします。

MySQL:SELECT * FROM TUsers;

上記の例を参照してください。

4

2 に答える 2

1

結合を使用するために「表示」せずにそれを行うことができます(つまり、JOINという単語はクエリに含まれません)が、MySQLは引き続き実行しJOINます...

SELECT *
FROM TUsers, TCompanies 
WHERE TUsers_CompanyID=TCompanies_ID;
于 2012-07-10T11:02:34.737 に答える
0

JOINデータの表示方法にaを使用する必要はありませんが、 VIEWと呼ばれるものを作成することで、実際にJOINコマンドを入力する必要がなくなります。ユーザーデータをクエリする場合:

CREATE VIEW UsersView AS
SELECT *
FROM TUsers a
INNER JOIN TCompanies b ON a.TUsers_CompanyID = b.TCompanies_ID

UsersView次に、ビューが定義されたら、次のように選択できます。

SELECT * FROM UsersView

...そして、ユーザー情報参加企業情報を返します。ビューは、より複雑なクエリを単純化(または「コンパクト化」)する方法と考えることができます。これは、内部では、実際には次と同じものであるためです。

SELECT *
FROM
(
    SELECT *
    FROM TUsers a
    INNER JOIN TCompanies b ON a.TUsers_CompanyID = b.TCompanies_ID
) UsersView
于 2012-07-10T11:20:59.447 に答える