Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要mysql查询从两个表中提取数据_Mysql_Sql_Database_Join_Union - Fatal编程技术网

需要mysql查询从两个表中提取数据

需要mysql查询从两个表中提取数据,mysql,sql,database,join,union,Mysql,Sql,Database,Join,Union,因此,在收到我最初问题的有用反馈后,我现在提出以下问题: SELECT sessions.id, sessions.title, sessions.abstract, sessions.presenters, sessions.proposal_id, proposals.outcomes, proposals.CategorySelection, proposals.research3, proposals.research4, proposals.research5, proposals.r

因此,在收到我最初问题的有用反馈后,我现在提出以下问题:

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;

您需要使用
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 

etc

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

要组合两个查询时,将使用UNION

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

我希望我能给你们两个答案。非常感谢!这正是我所需要的!这个问题原来是另外一个问题,所以标记这个答案。