【发布时间】:2012-12-07 00:35:33
【问题描述】:
我有一个表 (Table D),它的字段与另一个表 (Table M) 关联,其中包含一组引用表 D 中的单行的行。
可以(如果可以,如何)我可以创建一个 SQL 查询,它不仅可以从 D 中选择字段,还可以与表 M 连接,返回所有行值(仅来自一列)单个结果列,但全部连接在一起(最好进行某种转义,以免被M 中的流氓数据污染)?
编辑:
+-----------+----------+-------------+
| DataRowID | DataName | RandomField |
+-----------+----------+-------------+
| 1 | Foo | Alice |
+-----------+----------+-------------+
| 2 | Bar | Bob |
+-----------+----------+-------------+
| 3 | Baz | Charlie |
+-----------+----------+-------------+
+-----------+-----------+-----------+
| MetaRowID | DataRowID | MetaValue |
+-----------+-----------+-----------+
| 1 | 1 | Mercury |
+-----------+-----------+-----------+
| 2 | 1 | Venus |
+-----------+-----------+-----------+
| 3 | 1 | Earth |
+-----------+-----------+-----------+
| 4 | 2 | Mars |
+-----------+-----------+-----------+
| 5 | 2 | Jupiter |
+-----------+-----------+-----------+
| 6 | 3 | Saturn |
+-----------+-----------+-----------+
| 7 | 3 | Uranus |
+-----------+-----------+-----------+
| 8 | 3 | Neptune |
+-----------+-----------+-----------+
| 9 | 3 | Pluto |
+-----------+-----------+-----------+
当Where DataName = 'Bar'被查询时,
+-----------+----------+-------------+--------------+
| DataRowID | DataName | RandomField | MetaData |
+-----------+----------+-------------+--------------+
| 2 | Bar | Bob | Mars,Jupiter |
+-----------+----------+-------------+--------------+
【问题讨论】:
-
哪个 RBDMS?我从你过去的问题中假设 MySql...
-
一些示例数据和输出会有帮助吗?
标签: mysql sql join one-to-many