私の Sql Server データベースには 3 つのテーブル (Amount、wthdrwl、spent) があり、各テーブルには ID と amount 列があります。これら 3 つの異なるテーブルから金額列を取得したいと考えています。
5 に答える
5
MySQL、SQL-Server の両方で、UNION
(暗黙の個別) またはを使用しUNION ALL
ます。
SELECT Amount FROM Amount
UNION ALL
SELECT Amount FROM wthdrwl
UNION ALL
SELECT Amount FROM spent
于 2013-10-07T14:54:20.333 に答える
2
3つのテーブル間に何らかの関係があると思います
SELECT A.Amount AS Amount ,
W.Amount AS Withdrawal ,
S.Amount AS Spent
FROM Amount A
LEFT OUTER JOIN wthdrwl W ON A.ID = W.ID
LEFT JOIN spent S ON A.ID = S.ID
ここをチェック - SqlFiddle
于 2013-10-07T15:31:51.023 に答える
0
次のクエリを使用します。
select amount.amount, wthdrwl.amount, spent.amount from amount, wthdrwl, spent where amount.amount=wthdrwl.amount and wthdrwl.amount=spent.amount;
ここでは、属性とともにテーブル名を使用して、amount
3 つの異なるテーブルから属性を明確に識別する必要があります。結果セットの行の特定のエンティティに対応するには、 3 つのテーブルすべての属性が等しいことを確認する必要があります。id
于 2013-10-07T15:12:53.530 に答える
0
それらをすべて 1 行にまとめたい場合は、3 つのテーブルのそれぞれにある txnId 列など、2 番目の列を介して列をリンクする方法が必要です。次に、次のようなことができます。
SELECT Amount.Amount Amt, whtdrwl.Amount Wdrl, spent.Amount Spd
FROM Amount, whthdrwl, spent
WHERE Amount.txnId=wthdrwl.txnId
Amount.txnId=spent.txnId
于 2013-10-07T15:13:46.677 に答える
0
上記のコメントを踏まえて、固定文字列を使用して、値がどのテーブルからのものかを示します。
SELECT 'Amount' AS source, Amount FROM Amount
UNION ALL
SELECT 'whtdrwl' AS source, Amount FROM whtdrwl
UNION ALL
SELECT 'spent' AS source, Amount FROM spent
行を簡単に識別できます。これを 3 列の単一行として行うクエリを作成することもできますが、この方法の方がはるかに簡単です。
于 2013-10-07T15:01:07.143 に答える