2012-04-26 8 views
0
 **TableFruits**      **TableNames** 
    RecId RId  FruitId  Price   RId FruitId  Name 
    1  A1  Null   3$   A1  1  Mango 
    2  A2   2    4$   A2  2  Tomato 

私は私が変更することはできません(表2からFruitNamesを含めるには、このSQL文で参加し適用するにはどうすればよい内部結合の内部結合? TableFruitsにFruitIdの下にヌルがあるので

Select a.RecId,a.RId,b.FruitId from TableFruits a INNER JOIN TableNames b on a.RId=b.RId 
  1. のようにテーブル名から、それを取得したいです時間のことができますので、テーブルの順序)
+0

ご希望の出力は何ですか? – Jatin

+0

私は私の結果にRecId、RId、FruitId、Namesのようなものが欲しいです。 –

+1

あるテーブルに 'RID'が存在する場合、それも他のテーブルにも存在しますか?それとも不一致がありますか? –

答えて

2
SELECT a.RecId 
    , a.RId 
    , COALESCE(a.FruitId, b.FruitId) AS FruitId 
    , b.Name 
FROM TableFruits a 
    JOIN TableNames b 
    ON b.RId = a.RId ; 

RIdにaveの不一致がある場合は、外部結合が必要です。 LEFT,RIGHTまたはFULLであり、ミスマッチが発生する可能性がある側によって異なります。あなたはこのような何かを行うことができますので

MySQLは、FULL JOINを持っていない:

SELECT a.RecId 
    , a.RId 
    , COALESCE(a.FruitId, b.FruitId) AS FruitId 
    , b.Name 
FROM TableFruits a 
    LEFT JOIN TableNames b 
    ON b.RId = a.RId 

UNION ALL 

SELECT NULL 
    , NULL 
    , b.FruitId 
    , b.Name 
FROM TableFruits a 
    RIGHT JOIN TableNames b 
    ON b.RId = a.RId 
WHERE a.RId IS NULL ; 
+0

ありがとうypercube。それは魅力のように働いた! –

2
Select a.RecId,a.RId,a.FruitId, b.Name 
from TableFruits a 
LEFT OUTER JOIN TableNames b on a.RId=b.RId 
+0

私のクエリに内部結合を適用することでこれを行うことができますか?これは単なる例です。 –

+0

@DamienJoe:ypercubeの答えを参照してください。 –