2

私の最初の結果は次のようになります

ID       Name
----------------------------------
1        George
2        Peter
3        San

私の他の結果は次のようになります

AnotherID     ID     Note
-----------------------------------
1             1      georgesnote1
2             1      georgesnote2
3             3      sansnote1
4             1      georgesnote3

どのように見せたいか:

ID       Name        Note
----------------------------------
1        George      georgesnote1
1        George      georgesnote2
1        George      georgesnote3
2        Peter       NULL
3        San         sansnote1

私のSQLの知識は、これを達成するために私をかなり制限しています。UNION ALLのようなものが必要だと思います。INNER JOIN または LEFT OUTER JOIN は機能しません。私の実際のクエリは約 21 行なので、これは初心者向けの質問ではありません。必要なのは、同じ ID に基づいて 2 つの結果を結合することです。誰か私を導いてください。

4

8 に答える 8

2

LEFT JOIN が必要です。

http://www.w3schools.com/sql/sql_join_left.aspをチェックしてください

最初のテーブルがfirstと呼ばれ、2 番目のテーブルが second と呼ばれると仮定します。最初のテーブルの列IDは、2 番目のテーブルの列IDと一致します。

SELECT first.id, first.name, second.note
FROM first
LEFT JOIN second
ON first.id = second.id
ORDER BY first.id
于 2012-10-17T07:34:46.370 に答える
2
select n.ID, n.Name, t.note 
  from names n 
  left join notes t
  on n.id = t.id
于 2012-10-17T07:42:17.787 に答える
2
SELECT 
  N1.ID, N1.Name, N2.Note 
FROM 
  Names N1
    LEFT JOIN Notes N2 ON N1.ID = N2.ID
ORDER BY
  N1.ID
于 2012-10-17T07:27:39.837 に答える
2

使用する必要がありますleft join

select r1.id, r1.Name, r2.Note 
from result1 r1
left join result2 r2 on r2.id = r1.id
order by 1

ただし、結果が他のクワイアからのものである場合は、以下のようにそれらのクワイアを追加してみてください。

select r1.id, r1.Name, r2.Note 
from (select id,name from tab1) r1
left join (select id,note from tab2) r2 on r2.id = r1.id
order by 1

ここでは、についての詳細情報を見つけることができますleft join

于 2012-10-17T07:27:56.970 に答える
1
Select sur.ID, sur.NAME, not.NOTE 
FROM SURNAME sur
LEFT JOIN NOTES not
ON sur.ID = not.ID
于 2012-10-17T07:28:01.137 に答える
1
select
    T1.ID,
    T1.Name,
    T2.Note
from Table1 as T1.ID
    left outer Table2 as T2 on T2.ID = T1.ID
于 2012-10-17T07:28:10.400 に答える
1

LEFT JOINtable2に一致するかどうかにかかわらず、table1からすべてのレコードを選択したいので、ここで必要なものです

SELECT  a.ID, a.Name, b.Note
FROM    table1 a
        LEFT JOIN table2 b
            ON a.ID = b.ID
于 2012-10-17T07:29:13.990 に答える
1
select table1.id,table1.name,table2.note from table1 left  join table2  on table1.id=table2.id
于 2012-10-17T07:29:28.603 に答える