当我使用LEFT JOIN时,我已经读过了,
左表中的每个项目都会显示在MySQL结果中,即使它与正在加入的其他表格不匹配。
这就是我打算在我的查询中使用的内容,因为我希望找到alumni.name
与profile.name
的匹配项,并且仍会生成alumni
表中的所有记录,并且仅匹配来自profile
表的记录。这就是我理解LEFT JOIN的方式。我理解正确吗?告诉我,如果我没有。
如果我是对的,那么我还有另外一个问题。因为当alumni.name
与profile.name
不匹配时我想要,所以两个表中的记录仍然会打印出来。
像这样的东西
if alumni.name==profile.name
output alumni.name
else if alumni.name != profile.name
output alumni.name and profile.name
这只是我想要如何做的一个示例。不要判断我的病情,我知道这不是正确的方法,但我的想法就是这样。希望你能帮帮我。
示例代码段:
<!DOCTYPE html>
<html>
<body>
<table width="30%" align="center">
<th> Alumni ID </th>
<th> Alumni Firstname </th>
<th> Alumni Lastname </th>
<tr align="center">
<td> 1 </td>
<td>Jill</td>
<td>Smith</td>
</tr>
<tr align="center">
<td> 2 </td>
<td>John</td>
<td>Doe</td>
</tr>
<tr align="center">
<td> 3 </td>
<td>Ed</td>
<td>Fin</td>
</tr>
</table>
<br><br>
<table width="30%" align="center">
<th> Profile ID </th>
<th> Profile Firstname </th>
<th> Profile Lastname </th>
<tr align="center">
<td> 1 </td>
<td>Ed</td>
<td>Fin</td>
</tr>
<tr align="center">
<td> 2 </td>
<td>Ricky</td>
<td>Perez</td>
<tr align="center">
<td> 3 </td>
<td>Jill</td>
<td>Smith</td>
</tr>
</table>
<table width="30%" align="center">
<center><h4>EXPECTED OUTPUT </h4></center>
<th> ID </th>
<th> Firstname </th>
<th> Lastname </th>
<tr align="center">
<td> 1 (from table alumni)</td>
<td>Jill </td>
<td>Smith </td>
</tr>
<tr align="center">
<td> 2 (from tbl alumni)</td>
<td>John</td>
<td>Doe</td>
</tr>
<tr align="center">
<td> 2 (from tbl profile)</td>
<td>Ricky</td>
<td>Perez</td>
</tr>
<tr align="center">
<td> 3 (from tbl alumni)</td>
<td>Ed</td>
<td>Fin</td>
</tr>
</table>
</body>
</html>
答案 0 :(得分:0)
SELECT IF(alumni.name = profile.name,alumni.name,CONCAT(alumni.name,&#39;&#39;,profile.name))AS名称 来自校友 LEFT JOIN配置文件ON alumni.indexkey = profile.fkey
答案 1 :(得分:0)
你应该这样试试..
app.Run*()