到目前为止,我试图连接三张桌子而没有任何成功。我设法将两个表连接在一起,我正在提取正确的数据,但是只要在我的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,用户名
任何人....?
答案 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