2017-10-03 25 views
1

私はこれらの2つのテーブルを持っています。列timelistenrは両方で同じですが、残りの列は異なります。私は両方を1つのテーブルに印刷したいのですが、それを行う最も簡単な方法はわかりません。1つの出力に2つのテーブルをマージする

SELECT * FROM timelistelinje WHERE timelistenr > 7; 

SELECT * FROM timeliste WHERE timelistenr > 7; 

タイムリストが含まれています:timelistenr |リニアン| | | | sluttid |一時停止|詳細

timeliste contains:timelistenr |ステータス|リバート| utbetalt |

beskrivelse(NB 'beskrivelse' は異なる値を含む。)

+0

は、両方のテーブルのためにいくつかのサンプルデータを追加し、結合された結果。書式設定されたテキストで、イメージではありません。 – jarlh

答えて

1

のクエリをJOINを使用、またはすることができます

SELECT * FROM timeliste l, timelistelinje ln 
WHERE l.timelistenr = ln.timelistenr AND ln.timelistenr > 7 
+0

これは内部結合よりも効率がかなり悪くなります。これにより、2つのテーブルのデカルト積が生成され、フィルタリングされます。 – Liam

+0

@ Liam合意しました。実際、自分自身で内部結合を使用します。私はこの方法を提案しました。なぜなら、彼は「最も簡単な方法」を求めていたからです。 – stubs

3

これは単に別々に条件を適用する両方のテーブルのtimelistenrの値を出力INNER JOIN

An inner join is a join in which the values in the columns being joined are compared using a comparison operator.

SELECT * FROM timelistelinje as a 
INNER JOIN 
timeliste as b 
ON a.timelistenr = b.timelistenr 
WHERE a.timelistenr > 7; 
+0

このエラーが発生しました:列参照 "timelistenr"があいまいです – vspp

+0

WHERE句でテーブルを指定する必要があります – Liam

0
SELECT t1.timelistenr FROM timelistelinje t1 
WHERE <condition for timelistelinje> 
UNION 
SELECT t2.timelistenr FROM timeliste t2 
WHERE <condition for timeliste> 

を使用。これは、どちらのテーブル間の関係についても前提にはなりませんが、必要なものによっては、これがまさにあなたが探しているものかもしれません。

1

あなたは、代わりリアムが言ったように、このプロセス

Select tbl_timelistelinje.*, tbl_timeliste.* from tbl_timelistelinje inner join tbl_timeliste on timeliste=timeliste where timeliste > 7 
関連する問題