-1

私は2つのテーブルを持っています:

テーブルa

ida     valuea
1       a
2       b
3       c
1       d
1       e
2       f

表b

idb      valueb
1 
2

私はvaluebをコンボボックスとして作成し、ida = current idb.and table bのみが次のようになる場合にvalueaを選択するクエリからそれを取得する必要があります:

表b

idb      valueb
1        (a,d,e)
2        (b,f)
4

2 に答える 2

3

何を求めているのかを正確に伝えることは困難ですが、単純な内部結合を探していると思います。

SELECT  TableB.IDB, TableA.ValueA
FROM    TableB
        INNER JOIN TableA
            ON TableA.IDA = TableB.IDB

または、tableAの行をIDBを使用して単一の行に連結する必要があります。これを行う方法はDBMSに依存します。これは、私が知っている限り多くの回答をしたDMBSを指定していないためです。それぞれにSQLFiddleの例があります。


SQLサーバー

SELECT  TableB.IDB,
        STUFF(( SELECT  ', ' + ValueA
                FROM    TableA
                WHERE   TableA.IDA = TableB.IDB
                FOR XML PATH(''), TYPE
                ).value('.', 'VARCHAR(MAX)'), 1, 2, '') AS ValueB
FROM    TableB

MySQL / SQLite

SELECT  IDB, 
        GROUP_CONCAT(ValueA) AS ValueB
FROM    TableB
        INNER JOIN TableA
            ON TableA.IDA = TableB.IDB
GROUP BY IDB

PostgreSQL

SELECT  IDB,
        ARRAY_AGG(ValueA) AS ValueB
FROM    TableB
        INNER JOIN TableA
            ON TableA.IDA = TableB.IDB
GROUP BY IDB

オラクル

SELECT  IDB, 
        LISTAGG(ValueA, ', ') WITHIN GROUP (ORDER BY IDB) AS ValueB
FROM    TableB
        INNER JOIN TableA
            ON TableA.IDA = TableB.IDB
GROUP BY IDB
于 2012-07-02T12:55:24.240 に答える
0
SELECT distinct valuea
FROM tablea
WHERE ida = @idb

@idb選択した選択肢の値を含むパラメータです

于 2012-07-02T11:46:30.880 に答える