2016-05-05 15 views
0

は、私が使用したときにLEFT JOINをすることを読んで、2つのテーブルに一致するものがある場合とそうでない場合のデータを取得する方法はありますか?

それが結合されていることを他のテーブルとの一致がない場合でも、MySQLの結果に表示されます左の表の各項目に。

そして、これは私がprofile.namealumni.nameから一致するものを見つけて、まだalumniテーブルからすべてのレコードを結果にしたいので、私のクエリで使用することを計画し、そして唯一のprofileテーブルからレコードを一致てるものです。それが私がLEFT JOINを理解した方法です。私はそれを正しく理解しましたか?私がしなかったかどうか教えてください。

私が正しい場合は、別の問題があります。 alumni.nameprofile.nameと一致しなかった場合、2つのテーブルのレコードは引き続き印刷されます。この

if alumni.name==profile.name 
    output alumni.name 
else if alumni.name != profile.name 
    output alumni.name and profile.name 

このような

何かがちょうど私がそれをしたい方法についてのサンプルです。私の状態を判断しないでください、私はそれが正しい方法ではないことを知っていますが、私の考えはそうです。あなたが私を助けてくれることを願います。名前 AS

<!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> \t \t 
 
    </tr> 
 
    
 
    <tr align="center"> 
 
    <td> 2 </td> 
 
    <td>John</td> 
 
    <td>Doe</td> \t \t 
 
    </tr> 
 
    <tr align="center"> 
 
\t <td> 3 </td> 
 
    <td>Ed</td> 
 
    <td>Fin</td> \t \t 
 
    </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> \t \t 
 
    </tr> 
 
    
 
    <tr align="center"> 
 
    <td> 2 </td> 
 
    <td>Ricky</td> 
 
    <td>Perez</td> \t 
 
\t 
 
\t <tr align="center"> 
 
    <td> 3 </td> 
 
    <td>Jill</td> 
 
    <td>Smith</td> \t \t 
 
    </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> \t \t 
 
    </tr> 
 
    <tr align="center"> 
 
    <td> 2 (from tbl alumni)</td> 
 
    <td>John</td> 
 
    <td>Doe</td> \t \t 
 
    </tr> 
 
    <tr align="center"> 
 
    <td> 2 (from tbl profile)</td> 
 
    <td>Ricky</td> 
 
    <td>Perez</td> \t \t 
 
    </tr> 
 
    <tr align="center"> 
 
    <td> 3 (from tbl alumni)</td> 
 
    <td>Ed</td> 
 
    <td>Fin</td> \t \t 
 
    </tr> 
 
    
 
</table> 
 

 

 
</body> 
 
</html>

+0

データが挿入され、期待される出力を持つ2つのテーブル構造を表示してみませんか? –

+0

左結合の理解が正しいのか、phpを使ってデータベースの結合クエリを実行する方法を尋ねているのですか?私はこれを 'php'と' mysqli'タグのために言っています – dimlucas

+0

'CASE'はあなたの文です:https://dev.mysql.com/doc/refman/5.7/en/case.html – mitkosoft

答えて

0

SELECT IF(alumni.name = profile.name、alumni.name、CONCAT(alumni.name、 ''、profile.name))FROM:

サンプルスニペット卒業生は LEFT .. alumni.indexkey = profile.fkey

0

あなたがこの方法を試してみてくださいONプロフィールをチェックしましょう

SELECT (CASE when (colname1 = "XYZ" colname2 = "ABC") 
THEN 
     1 
ELSE 
     0 
END) 
as res from mytbl; 
関連する問題