【问题标题】:Need mysql query to pull data from two tables需要mysql查询从两个表中提取数据
【发布时间】:2014-05-01 16:19:01
【问题描述】:

因此,在对我最初的问题提供有用的反馈后,我现在有这个查询:

SELECT sessions.id, sessions.title, sessions.abstract, sessions.presenters, sessions.proposal_id, proposals.outcomes, proposals.CategorySelection, proposals.research3, proposals.research4, proposals.research5, proposals.research6, proposals.innovation3, proposals.innovation4, proposals.innovation5,proposals.innovation6, proposals.application3, proposals.application4, proposals.application5, proposals.application6, proposals.integration3, proposals.integration4, proposals.integration5, proposals.integration6, proposals.references, proposals.organization
    FROM sessions, proposals
    INNER JOIN proposals ON proposals.id = sessions.proposal_id
    WHERE sessions.id = '$id
    LIMIT 1;)

这让我无处可去。我究竟做错了什么?


原问题: 我需要从一个表中提取多个字段,并从第二个表中提取更多字段。条件是名为 proposal_id 的字段与第二个表的 id 字段匹配。我还很新,所以这就是我到目前为止所拥有的。它不工作,但不知道如何使它工作。

(SELECT `title`,`abstract`,`presenters`,`proposal_id` FROM `sessions` WHERE   `id`='$id')
    UNION
    (SELECT `outcomes`,`CategorySelection`,`research3`,`research4`,`research5`,`research6`,`innovation3`,`innovation4`,`innovation5`,
        `innovation6`,`application3`,`application4`,`application5`,`application6`,`integration3`,`integration4`,`integration5`,`integration6`,`references`,`organization` FROM `proposals` WHERE `id`= `sessions`.`proposal_id`)
        LIMIT 1;

【问题讨论】:

标签: mysql sql database join union


【解决方案1】:

您需要使用JOIN 而不是UNION

select 
s.*,p.*
from `sessions` s
inner join `proposals` p on p.id = s.proposal_id
where s.id = '$id'

这就是您可以使用它们之间的公共键连接两个表的方法。

您可以通过将列名指定为

来选择特定字段而不是 .*
s.col1,s.col2,p.col1,p.col2 

【讨论】:

    【解决方案2】:

    尝试使用JOINS,可以匹配两个表中的相关字段,这是从多个表中获取记录最方便的方法

    当你想合并两个查询时使用UNION

    select a.id,b.some_field from table1 as a
    INNER JOIN table2 as b ON b.prospal_id = a.id
    

    【讨论】:

      猜你喜欢
      • 2016-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-21
      • 1970-01-01
      • 2021-02-23
      相关资源
      最近更新 更多