如果两个表有匹配,如何从两个表中获取数据?

时间:2016-05-05 12:44:23

标签: php mysql join left-join

当我使用LEFT JOIN时,我已经读过了,

  

左表中的每个项目都会显示在MySQL结果中,即使它与正在加入的其他表格不匹配。

这就是我打算在我的查询中使用的内容,因为我希望找到alumni.nameprofile.name的匹配项,并且仍会生成alumni表中的所有记录,并且仅匹配来自profile表的记录。这就是我理解LEFT JOIN的方式。我理解正确吗?告诉我,如果我没有。

如果我是对的,那么我还有另外一个问题。因为当alumni.nameprofile.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>

2 个答案:

答案 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*()