我有2张这样的表格:
TABLE1: id |名称|信息
和
TABLE2:名称|更多信息
我有一个查询,该查询从第一个表返回一个 name 的列表。然后,我想用那些从另一张表中获得相应的 moreinfo 。例如,如果返回名称a,b,并且在表2中,我有 a |。苹果,b |面包我要苹果和面包归来。
是否有关于最佳方法的想法?任何帮助表示感谢,谢谢!
答案 0 :(得分:1)
似乎您只想在这里加入:
SELECT t1.name, t2.moreinfo
FROM TABLE1 t1
INNER JOIN TABLE2 t2
ON t1.name = t2.name;
如果要报告第一个表中的所有名称,即使它们在第二个表中没有匹配的名称,也可以使用左联接:
SELECT t1.name, COALESCE(t2.moreinfo, 'NA') AS moreinfo
FROM TABLE1 t1
LEFT JOIN TABLE2 t2
ON t1.name = t2.name;
答案 1 :(得分:1)
从字面上看,您似乎要求退回Apple和Bread,但不一定要求提供与该名称相关的其他信息。目前尚不清楚查询结果的格式。
select moreinfo from table2 where name in (YOURQUERYRESULT);
YOURQUERYRESULT可以是仅返回名称或包含名称的列表的查询。
在其他地方可以用连接示例回答问题,在该示例中,您可能希望用查询代替表。
select a.id, a.name, a.info, b.moreinfo
from (YOURQUERY) a
join table2 b on a.name=b.name
我建议您在table2中添加一个id列以标识用户并加入该字段。名称更改,并且多个用户具有相同的名称。
最好的问候,
比尼亚尼