【问题标题】:Query not returning all the rows using inner join查询不使用内连接返回所有行
【发布时间】:2026-01-23 12:20:02
【问题描述】:
SELECT table1.* , table2.Value 
FROM table1  
INNER JOIN  table2 
ON table1.id = table2.id 
WHERE table2.Label = "Currency"

这是查询。即使Label = currency 不存在,我也需要返回这些值。 即,我需要返回具有唯一 ID 的 table1 的所有行。如果 table2 有货币,则应采用货币值,否则应返回空值。

【问题讨论】:

    标签: sqlite inner-join


    【解决方案1】:

    试试这个

    SELECT table1.* , table2.Value FROM table1 left outer join table2 on table1.id = table2.id where table2.Label = "Currency" 
    

    【讨论】:

      【解决方案2】:

      尝试像这样使用 OUTER JOIN:

      SELECT table1.* , table2.Value 
      FROM table1 
      LEFT JOIN table2 
      ON table1.id = table2.id 
      AND table2.Label = "Currency"
      

      【讨论】:

      • 谢谢@Aziz Shaikh。我不应该使用 where at table2.Label = "Currency"。成功了
      【解决方案3】:

      听起来你想要一些类似的东西。

      SELECT table1.* , table2.Value 
      FROM table1 
      left join table2 on table1.id = table2.id
      

      我假设 table2.value 是您正在谈论的货币价值。

      编辑您的问题,并粘贴 CREATE TABLE 语句以获得更多更好的答案。

      【讨论】:

        最近更新 更多