【发布时间】:2012-09-11 15:22:33
【问题描述】:
我有一个包含三列的“电影”表:“id”、“master_id”和“searchMe”(简化版)。我有另一个表'temp_ids',只有一个列:'id'。这是一个临时表,但我认为这并不重要。
当我对我的表“电影”进行查询时
SELECT `id`, `master_id` FROM 'movies' WHERE searchMe = '1';
我得到一个多列结果。现在我想将每个 id 和每个 master_id 插入到“temp_ids”表中,但一次插入一个。所以如果我的结果是
id_1 | master_1
id_2 | master_2
id_3 | NULL
我希望我的 temp_id 看起来像
id_1
master_1
id_2
master_2
id_3
所以我想将结果中的每一列都转换为自己的行。我怎样才能以优雅的方式做到这一点? 我知道我可以在多个查询中做到这一点,分别搜索 id 和 master_id,我知道我可以用 PHP 左右解决这个问题。但如果可能的话,我更希望它在单个 mysql 查询中解决该问题。
我为此做了一个 sqlfiddle: http://sqlfiddle.com/#!2/b4a7f/2
【问题讨论】:
-
我很想知道:您为什么需要这样做?
-
我正在构建一个需要取消引用许多电影并使用该数据的工具。有几个查询需要访问这个 id_collection(当然在这个例子中被简化了),所以我想把它收集到一个单独的表中,而不是每个模块都自己创建这个集合。我想看看是否有一种优雅的方法可以一次性完成,而不是使用 PHP-Backend。还有:)