2015-04-01 70 views
0
'SELECT * FROM t1 
      JOIN t2 ON t1.wid = t2.wid 
      WHERE t2.wid IS NULL 
      LIMIT ' . $number; 

這段代碼沒有任何回報,我可以幫助你,爲什麼我不採取價值觀?哪裏是我的sql代碼中的錯誤?

+0

顯示錶結構和什麼是WHERE IS NULL? – 2015-04-01 07:06:30

+0

什麼是null? – 2015-04-01 07:07:02

+0

我有一個t1有很多值,如2.000.000行和一個空的t2。我想要的是從t1運行所有的行,但用戶將選擇的限制數,並且有人告訴我可以用where來解決這個問題。如果JOIN不爲NULL,t1中的值將被插入到t2中...我解決這個插入,但是這些代碼行不會爲我運行:'( – Karmen 2015-04-01 07:19:01

回答

1
JOIN t2 ON t1.wid = t1.wid 

你的意思是?或者你真的認爲t1.wid = t2.wid?在這種情況下,你想要一個左連接。

編輯

好了,你固定它。這不會顯示任何結果,除非有t2行中有一個wid與t1中具有相同wid的行匹配。

如果你想要的結果,它改成這樣:

'SELECT * FROM t1 
      LEFT JOIN t2 ON t1.wid = t2.wid 
      WHERE t2.wid IS NULL 
      LIMIT ' . $number; 

下一個編輯

如果目標是與T1已經不在T2值更新T2,那麼它會是這樣的:

'INSERT INTO t2 
    SELECT t1.* FROM t1 
    LEFT JOIN t2 
     ON t1.wid = t2.wid 
    WHERE t2.wid IS NULL 
    LIMIT ' . $number; 

缺少的步驟只是簡單地返回t1的結果,然後將它們插入t2。

+0

我糾正了它。 – Karmen 2015-04-01 07:26:50

+0

@卡門謝謝,有點幫助 – 2015-04-01 07:35:37

+0

是的,你說但看起來是正確的 – Karmen 2015-04-01 07:42:09

0

我認爲你有一個錯字。

'SELECT * FROM t1 
       JOIN t2 ON t1.wid = t2.wid 
       WHERE t2.wid IS NULL 
       LIMIT ' . $number; 
+0

我改正了這一點 – Karmen 2015-04-01 07:27:21