2012-02-12 41 views
2

私は、MySQLデータベースに2つのテーブルを持っています。 1つは、フィールド( 'landlord_id')を持つレガシーテーブル(家主)です。関係のない2つのSQLテーブルに結合しますか?

もう1つはJoomla!すべてのユーザーが有効であることを確認するために必要なjos_usersという1.7のテーブルJoomla!ユーザーはログインすることができます。それには「id」というフィールドがあります。

例として、landlords.landlord_id = 2(John Smith)に既存のレコードがありますが、対応するjos_user.idレコードは存在しません。なぜなら、地主テーブルはjos_usersの前に存在していたからです。

SQLを使用して2つの間の関係を確立/作成する方法はありますか?

それとも

は私が地主のためjos_userレコードを作成する必要があります(もしそうならどうやって?)?

どのような提案や例もありがとうございます。

答えて

1

あなたが実際にそれらをあなたにすべての地主に返すと一致するJoomlaのユーザーが参加します

 
SELECT 
    lls.landlord_id, 
    jus.id 
FROM landlords lls 
LEFT JOIN jos_users jus ON lls.landlord_id=jus.id 

に参加することができます。指定された地主のJoomlaユーザーがいない場合、jus.idはNULLになります。一致しないエントリはNULLであり、LEFT JOINのために結果セットから削除されません。単にLEFT JOINが左のテーブルからすべての行を保持し、一致が失敗した場合はNULLを挿入します。

サンプル:

 
landlord_id | id 
      1 | 1 
      2 | 2 
      3 | NULL 
+0

ありがとう、私の場合、どちらの表でも値が一致していないJohannes、よいSQLソリューションです。しかし、非常に便利です!ありがとう。 – EdwardC

2

あなたが新しいシステムに旧システムからのデータを越えポートになります。私はあなたがJoomlaのユーザログインシステムを使用していると仮定します。あなたが理解している場合、その場合、データはフォーマットであり、joomlaがそれを探している場所になければなりません。

実際には、データを複製せずに「リンク」を作成することはできません。

あなたができることは、家主のテーブルにjoomla_user_idというフィールドを追加することです。この方法で、joomlaユーザーを古いシステムの家主レコードに関連付けることができます。そうすれば、手動で何かを移植する必要はなく、アプリケーションを構築してjoomlaのユーザーIDに基づいて家主のデータを取得することができます。

+0

こんにちはThomasさん、ありがとうございます。私は家主のテーブルに追加のフィールドを追加することに同意します。意味をなさないとても有難い。 – EdwardC

+1

お元気です。 :)私があなたの質問に答えた場合は、私の答えの横にある小さな緑色のチェックマークをチェックして、正しい答えとしてください。 –

+0

@ThomasClayson私はTickをマークしました:) –

関連する問題