我一直在玩,试图找到一个解决办法,但有点卡住了。
我有一个'meetings'表,表中有两列,其中包含来自'members'的id,我需要在会议列表中显示成员详细信息。
我试过了,但没用。。。
$q = "SELECT (meetings.id) AS meetings_id, meetings.columnA, meetings.ColumnB, (members.id) AS members_id, members.first, members.last FROM meetings**LEFT JOIN members ON meetings.columnA = members.id AND meetings.columnB = members.id**";
$r = mysqli_query($dbc, $q);
while($row = mysqli_fetch_assoc($r)) { }
如果只对单个值(columna或columnb)进行连接,我只能让它工作,但这显然只检索单个成员的数据。
虽然这种方法可行,但并不理想。。。
$q = "SELECT * FROM meetings";
$r = mysqli_query($dbc, $q);
while($row = mysqli_fetch_assoc($r)) {
$qm = "SELECT * FROM members WHERE id = '$row[columnA]'";
$rm = mysqli_query($dbc, $qm);
while($rowm = mysqli_fetch_assoc($rm)) {
if ($row['columnA'] == $rowm['id']) { echo $rowm['first']; }
}
$qm = "SELECT * FROM members WHERE id = '$row[columnB]'";
$rm = mysqli_query($dbc, $qm);
while($rowm = mysqli_fetch_assoc($rm)) {
if ($row['columnB'] == $rowm['id']) { echo $rowm['first']; }
}
}
有没有一种方法可以让连接工作,或者更好的方法,这样我只需要进行一个查询?
谢谢。
2条答案
按热度按时间j8ag8udp1#
我想你只想要两个
left join
s。fkvaft9z2#
试试这个: