【发布时间】:2017-05-29 09:51:15
【问题描述】:
我有两个 mysql 表。本质上,我想在一个 SQL 查询中组合两个查询(每个表一个)。似乎应该很容易(有点像内部联接)但是内部联接是将表 2 中的非唯一值复制到我的结果数组中...我不希望它们重复...我想要表/查询 2 中的那些重复项合并到query1的结果记录
查询 1 从表 1 中获取记录。结果是唯一的。 (一个 ID 返回一个记录)它只是返回 ID 等于我的条件之一的记录上的所有字段。 [我使用 IN 而不是一堆 OR)
$sid = "'M-179','M-242','M-231','Q-2thru5'" ;
$query = "SELECT * FROM table1 WHERE IN ($sid)`
查询 2 从表 2 中获取记录。但结果不是唯一的。一个 ID 可以返回多条记录。
$query2 = "SELECT extra_data, pub_url FROM table2 WHERE IN ($sid)";
所以我希望所有返回记录中的每个 extra_data 和 pub_url 字段都放在查询 1 结果的末尾。我说得有道理吗?所以结果看起来像这样......
[0] => Array
(
* all my returned fields from the
record returned by query 1 here
$row['extra_data']
$row['pub_url'] <-returned record from query 2
$row['extra_data']
$row['pub_url'] <-another returned record from query 2
$row['extra_data']
$row['pub_url'] <-any another returned
record from query 2, etc..
)
【问题讨论】: