很难确切地说出你在问什么,但我认为你要么只是在寻找一个简单的 INNER JOIN:
SELECT TableB.IDB, TableA.ValueA
FROM TableB
INNER JOIN TableA
ON TableA.IDA = TableB.IDB
或者您需要使用 IDB 将 tableA 中的行连接成一行。这样做的方法取决于 DBMS,因为您没有指定一个 DMBS,我已经回答了我所知道的许多问题。每个都有一个关于 SQL Fiddle 的示例。
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