これはおそらく非常に単純な質問ですが、私が行う検索のほとんどは、行の結合 (列の結合ではありません) または行の連結に関するものです。
ID 列で 2 つのテーブルを結合したいのですが、1 つの ID 列のみを返したいのです。
例:
表1:
ID|Data1|Data2
表 2:
ID|Data3|Data4
返してほしい:
ID|Data1|Data2|Data3|Data4
編集:
すべての列を指定できることは承知していますが、実際には 50 に近い列を持ち込んでいるので、すべてを指定する必要はありません。クエリから取得する各列を指定せずにこれを行う方法はありますか?
自然結合が必要だと思いますが、次のエラーが表示されます。
SELECT *
FROM allqachecklists t1
WHERE t1.IsIncorrect=1
NATURAL JOIN (SELECT QAID, PMC, SiteName, Submitter, QAer FROM qabin.allqas) t2
分析中に 1 件のエラーが見つかりました。
認識されないキーワード。(59位「NATURAL」付近)
自然結合では、両方のテーブルから * を選択し、キーで結合できます。これらの 2 つの列は、結果セットで 1 として返されます。両方のテーブルで他の列に同じ名前が付けられていないことを条件とします。
SELECT *
FROM Table1 A
NATURAL JOIN Table2 B
例を見つけることができます: http://rextester.com/FNT36037
mySQLドキュメントの状態: ...
自然結合および USING を使用した結合 (外部結合バリアントを含む) は、SQL:2003 標準に従って処理されます。
NATURAL 結合の冗長な列は表示されません。...
質問を編集すると、SQLを以下のように変更できます。
SELECT *
FROM allqachecklists t1
NATURAL JOIN (SELECT QAID, PMC, SiteName, Submitter, QAer FROM qabin.allqas) t2
WHERE t1.IsIncorrect=1
LIMIT 10
次に where 句を結合します。すべてのレコードを持たないテーブルの制限を結合に設定する必要がないため、外部結合には注意が必要です。そうしないと、外部結合は内部結合のように動作します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加