2013-11-25 51 views
2

我建立2次的查询的$project_id变量进行比较,以下面的流程图中所示MEETING & MEETING_AGENDA 2个表:需要帮助建立一个MySQL查询一个可变比较两个表

        +---------------------+ 
       +------------+  | MEETING_AGENDA | 
       | MEETING |  +---------------------+ 
       +------------+  | meeting_agenda_id | 
       | meeting_id |----->| meeting_id   | 
$project_id --->| project_id |  | meeting_agenda_name | 
       +------------+  +---------------------+ 

这背后的逻辑流程图是,我已经存储了一个名为$project_id的变量作为输入。如果$project_id = MEETING.project_id那么我需要存储一个MEETING.meeting_id的列表。 MEETING中有多个project_id的重复项,导致产生了一组meeting_id(仅供说明)。如果有任何的MEETING.meeting_id= MEETING_AGENDA.meeting_id然后打印meeting_agenda_name

我凌乱的尝试(工作)看起来是这样的:

$project_id = $_SESSION['PROJECT_ID']; 
$query1 = 
" 
SELECT meeting_id, meeting_project_id 
FROM MEETING 
WHERE project_id = $project_id 
"; 

$result1 = mysqli_query($con, $query1) or die("Query error: " . mysqli_error($con)); 

while($row = mysqli_fetch_array($result1)){ 
    $meeting_ids = $row['meeting_id']; 

    $query2 = 
    " 
    SELECT * 
    FROM MEEITNG_AGENDA 
    WHERE meeting_id = $meeting_ids 
    "; 

    $result2 = mysqli_query($con, $query2) or die("Query error: " . mysqli_error($con)); 

    while($row2 = mysqli_fetch_array($result2)){ 
    echo $row2['meeting_agenda_name'] . "<br>" 
    } 
} 

我用2查询的,我想如果可能的话擦拭本成1个查询。我曾尝试在单个查询中进行各种尝试,但没有任何解决方案适用于我。这是我最近的尝试。

新的查询:

$query = 
" 
SELECT MEETING.project_id, MEETING.meeting_id, MEETING_AGENDA.* 
FROM MEETING 
WHERE MEETING.project_id = $project_id 
INNER JOIN MEETING.project_id 
ON $project_id = MEETING.project_id 
"; 

我为我的mysql缺乏知识的道歉,但任何帮助表示赞赏。

回答

1

你可以在一个单一的查询信息与以下内容:

SELECT m.project_id, m.meeting_id, ma.* 
FROM MEETING m 
INNER JOIN MEETING_AGENDA ma ON ma.meeting_id = m.meeting_id 
WHERE m.project_id = $project_id 
+0

谢谢你的快速反应@filipesilva,就像一个魅力 – Rob