Mysql联接允许ID用作链接表null值的内部联接上的按钮链接



如果没有一些背景信息,我不知道如何表达我的问题。

我有两张表:账户和名册

账户id-PK员工姓名

名册名册ID-PKid-指向帐户表的FK链接星期一星期二等等。

我正在尝试在php中创建一个编辑表。

这是我当前输出的

$sql = "SELECT * FROM accounts LEFT OUTER JOIN rosters ON accounts.id=rosters.id 
WHERE stafffname<>'admin' ORDER BY rosters.week_start ASC, accounts.stafffname ASC";
$result = $mysqli->query($sql);
if($result->num_rows > 0) 
{
while($row = $result->fetch_assoc()) 
{
$comments = str_replace('+', '<br/>', $row['comments']);
$comments = str_replace('{', '<strong/>', $comments);
$comments = str_replace('}', '</strong/>', $comments);
echo '
<tr class><!-- 2nd row STAFF MEMBER 5-->
<td><!--Date Range-->
'.$row["stafffname"].'
'.$row["id"].'
</td>
<td><!--Date Range-->
'.date("d M Y", strtotime($row["week_start"])).'
</td>
<td><!--Mon Time-->
'.substr($row["mon_start"],0,5).' - '.substr($row["mon_end"],0,5).'
</td>
<td><!--Tue Time-->
'.substr($row["tue_start"],0,5).' - '.substr($row["tue_end"],0,5).'
</td>
<td><!--Wed Time--> 
'.substr($row["wed_start"],0,5).' - '.substr($row["wed_end"],0,5).'
</td>
<td><!--Thu Time-->
'.substr($row["thu_start"],0,5).' - '.substr($row["thu_end"],0,5).'
</td>
<td><!--Fri Time-->
'.substr($row["fri_start"],0,5).' - '.substr($row["fri_end"],0,5).'
</td>
<td><!--Sat Time-->
'.substr($row["sat_start"],0,5).' - '.substr($row["sat_end"],0,5).'
</td>
<td><!--Comments-->
'.$comments.'
</td>
<td><!--Comments-->
<a href="rcreate.php?id='.$row["id"].'&tabid=3" class="btn btn-danger btn-sm">Add</a>
<a href="redit.php?id='.$row["id"].'&tabid=3&rosterID='.$row["rosterID"].'" class="btn btn-warning btn-sm">Edit</a>

</td>
</tr>
';
}

查询运行良好,它列出了具有Null值的用户。

我想做的是:有一个添加和编辑按钮连接到行,但当名册表中有空值时,账户表中的id不会传递给添加或编辑按钮。

有没有办法将id传递给添加和编辑按钮?

我需要其他类型的查询吗。

我尝试过交叉联接和其他组合,但它只在两个表中都有数据时列出ID。

感谢

您当前使用的是LEFT OUTER JOINaccounts表位于左侧,rosters表位于右侧。这意味着SQL将返回来自accounts的所有记录,以及来自rosters的任何匹配记录(如果找到(。

听起来您想要使用FULL OUTER JOIN,它将返回两个表中的记录,并在它们符合where子句中的条件时将它们连接起来。

最新更新