2

私の Sql Server データベースには 3 つのテーブル (Amount、wthdrwl、spent) があり、各テーブルには ID と amount 列があります。これら 3 つの異なるテーブルから金額列を取得したいと考えています。

4

5 に答える 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 に答える