2012-10-13 20 views
2

首先,我想2個表tb_wrappertb_summary之間的比較來獲得在tb_wrapper不會在tb_summary存在,那麼在$link保存數據。如果我沒有得到相同的數據,我想打印結果$link。當我沒有得到不相同的數據時,我希望它轉到另一個進程。不能運行下一道工序當一個變量沒有保存價值

下面的代碼:

$q2 = mysql_query(" SELECT 
          a.doc_url 
        FROM 
          tb_wrapper a 
        LEFT JOIN 
          tb_summary b 
          ON a.doc_name = b.doc_summ 
        WHERE 
          b.doc_summ IS NULL"); 

while ($row = mysql_fetch_array($q2)){ 
    $link = $row['doc_url']; 
    if ($link){ 
     include 'next_process.php'; 
    } 
    else { 
     include 'blablabla.php'; 
    } 
} 

這是行不通的。當我沒有得到不相同的數據或$link沒有保存一個值。

表:

CREATE TABLE tb1 
(`id` int, `doc_name` varchar(100), `doc_url` varchar(50)) 
} 

CREATE TABLE tb2 
(`id` int, `doc_summ` varchar(100)) 
} 
+0

你能提供兩個表的'SHOW CREATE'? – hjpotter92

+0

@TheDOCTORfromTARDIS我添加了它.. – bruine

回答

0

因爲你的表沒有任何PRIMARY KEY或任何其他INDEX,此查詢可能需要一些時間:

SELECT a.doc_url 
FROM tb_wrapper a 
WHERE a.id NOT IN ( 
    SELECT tw.id 
    FROM tbl_wrapper tw 
    LEFT JOIN tb_summary b 
     ON tw.doc_name = b.doc_summ) 
+0

我的查詢給了我正確的結果...它似乎我做出了錯誤的條件後,而 – bruine

+0

從我所看到的,你的查詢會給出正確的結果,即你會得到鏈接在$ link的所有時間。什麼是不明確的是你正在測試什麼? 我跑了一個快速測試,它打印出一切沒有問題。 **如果**從不運行。 –

+0

也許'if($ link ==='')'會幫忙嗎? – davidkonrad