在MySQL中加入3个表

时间:2012-01-06 00:27:38

标签: php mysql

到目前为止,我试图连接三张桌子而没有任何成功。我设法将两个表连接在一起,我正在提取正确的数据,但是只要在我的sql语句中添加几个单词,就不会显示任何数据。代码如下:

    <?php
$id = $_GET['meeting_id'];

$result = mysql_query("SELECT * FROM Meetings INNER JOIN Minutes ON Meetings.meeting_id = Minutes.meeting_id INNER JOIN attendees ON attendees.meeting_id AND attendees.username WHERE Minutes.approval = 'approved' AND Meetings.meeting_id = '$id'")
or die(mysql_error());

if (mysql_num_rows($result) == 0) {
       echo '<h3>There Arent Any Minutes For This Meeting Yet</h3>';
    } else {

while($info = mysql_fetch_array($result))
{

        echo "<tr>";
        echo "<td><br/>" .'Title: '. $info['title']." </td>";
        echo "<td><br/><br/>" .'Subject: '. $info['subject']. "</td>";
        echo "<td><br/><br/>" .'Next Subject: '. $info['next_subject']."</td>";
        echo "<td><br/><br/>" .'Attendees: '. $info['username']."</td>";


        }
    }
echo "</tr>";
echo "</table>";


?>

我的数据库表如下:

会议:meeting_id,职称,主题,主席,秘书,行动

分钟:minute_id,subject,next_subject,approval,meeting_id

与会者:attendees_id,meeting_id,用户名

任何人....?

2 个答案:

答案 0 :(得分:3)

与会者表未正确加入。

SELECT * 
  FROM Meetings 
 INNER JOIN Minutes ON Meetings.meeting_id = Minutes.meeting_id 
 INNER JOIN attendees ON Meetings.meeting_id = attendees.meeting_id 
 WHERE Minutes.approval = 'approved' 
   AND Meetings.meeting_id = '$id'

您的SQL只会返回有与会者和会议记录的会议。如果会议没有这些,则将INNER JOIN语句更改为LEFT JOIN。

答案 1 :(得分:2)

SELECT Meetings.Meeting_Id,Meetings.Title,Meetings.Subject,
Minutes.Subject AS MinuteSubject,
Attendees.AttendeesID
FROM
Meetings
INNER JOIN
Minutes
ON Meetings.Meeting_id=Minutes.Meeting_Id
INNER JOIN
Attendees
ON Attendees.Meeting_id=Meetings.Meeting_ID
WHERE Meetings.Meeting_id=24

您可以用变量

替换25