2012-05-05 111 views
1

我無法讓兩個INNER JOINS正常工作。當我僅使用第一個INNER JOIN時顯示數據,但添加第二個INNER JOIN時沒有顯示任何數據。多個INNER JOIN不能正常工作

下面是我使用其中的URL將是代碼:website.com/matchdetails/season/match_id

 <?php 
    $db = new PDO('mysql:host=db.xx.xx;dbname=xx','xx','xx'); 

    $sth = $db->prepare(" 
    SELECT * 
    FROM 
     matchdetails AS md 
    INNER JOIN 
     players AS p 
      ON 
      (p.player_id = md.player_id) 
    INNER JOIN 
     matches AS m 
      ON 
      (m.match_id = md.match_id) 
       WHERE (CONCAT_WS('/', season, match_id)) = :season"); 
    $sth->execute(array(':season' => substr($_SERVER['PATH_INFO'], 1))); 
    foreach($sth as $row) {?> 
    <?php echo 'Name '. $row['name'] . '<br/>'; ?> 
    <?php echo 'Goals ', $row['goals'] . '<br/>'; ?> 
    <?php echo 'Assists ',$row['assists'] . '<br/>'; ?> 
    <?php echo 'VVO Score ',$row['vvo_score'] . '<br/>' . '<br/>'; ?> 
    <?php }?> 

我的數據庫結構爲:

表匹配

enter image description here

表matchdetails

enter image description here

表選手

enter image description here

+0

沒有顯示樣本數據,我們沒有理由認爲應該返回行。你是否有來自每個表的符合條件的行? –

+0

你能向我解釋這一行嗎? WHERE REPLACE(CONCAT_WS('/',season,match_id),'','/')=:season「) – AverageMarcus

+0

其他查詢是否有效?是否有類似的查詢會產生一些輸出,但不會給你帶來好處你需要的結果是什麼?你可以發佈它嗎?查詢和查詢之間的主要區別是什麼? –

回答

2

ON (p.player_id = m.player_id),m爲表 '匹配' 和 '匹配' 有他的名字是 'player_id' 沒有列。

+0

你是對的,謝謝! – Johan