2011-06-27 10 views
1

ここで私は従業員とmobileoutboxテーブルのような2つのテーブルを持っていますが、これらの2つのテーブルは互いに接続されていませんが、 2つのテーブルからデータを照合し、レポートを生成する。外部キーなしで2つのテーブルからデータにアクセスするには? のテーブル構造:何が不確実である場合SQL Server 2005で外部キーなしで2つのテーブルからデータにアクセスする方法

employee table    mobileoutbox table 
empid       srno 
empname       mobileno 
empphoneno      textmsg 
empaddress      texttype 
+0

empphonenoとmobilenoは同じですか? – gmhk

+1

あなたは関係のない2つのテーブルを関連させようとしているようですね。サンプルデータと期待される出力を表示できますか?私は 'empphoneno'と' mobileno'が関連していると思っていますが、これをあなたが質問すると助けになるでしょう。 –

答えて

0

たぶん、あなたは、データの関係を持つ外部キー制約を混乱されています。はい、データが一致する2つのテーブル(これらの可能性の高い電話番号)とデータの制約があります。あなたが一致するデータを含む列を関連する両方のテーブルを照会する必要がある場合は

は、ちょうどINNER JOINを使用します。あなたはすべての従業員を、報告したいことがありその後

SELECT employee.*, mobileoutbox.* 
FROM employee INNER JOIN mobileoutbox 
ON employee.empphoneno = mobileoutbox.mobileno 

でも携帯電話を持っていない人。従業員が右に携帯電話番号を照合携帯電話番号を持っている場合、これはすべての従業員ではなくmobileoutboxフィールドのNULLデータが返されます

SELECT employee.*, mobileoutbox.* 
FROM employee LEFT OUTER JOIN mobileoutbox 
ON employee.empphoneno = mobileoutbox.mobileno 

:この場合、あなたはこれを行うには左外部結合を使用することができます表。

0
SELECT em.*, mo.* 
FROM employee em, mobileoutbox mo 
WHERE em.empphoneno = mo.mobileno 

は教えてください。

ああ、データに「一致」する必要がある場合は、2つのテーブルの間に何らかの種類の重複する情報がある外部キーが存在する必要があります。私は外国のキーとして私の例では電話番号を使用した、私はそれが問題の現実かどうかわからない。

+0

これはほとんどの方言では有効なSQLではありませんが、SQL Server – gbn

+0

は私のためにちょうどいいです。 –

+0

これで編集しましたが、それはうまくいきません。 http://stackoverflow.com/posts/6489476/revisions – gbn

0
SELECT e.empid, e.empname, e.empphoneno, e.empaddress, m.srno, m.mobileno, m.textmsg, m.texttype 
FROM employee e, mobileoutbox m 
WHERE e.empphoneno = m.mobileno 
関連する問題