Mysql
 sql >> Baza danych >  >> RDS >> Mysql

gdzie jest błąd w moim kodzie sql?

JOIN t2 ON t1.wid = t1.wid

miałeś to na myśli? czy naprawdę masz na myśli t1.wid =t2.wid? w takim przypadku chciałbyś lewego przyłączenia.

EDYTUJ

Dobra, więc naprawiłeś to. To nie pokaże żadnych wyników, chyba że istnieją wiersze w t2, które mają szerokość pasującą do wiersza w t1 o tej samej szerokości.

Jeśli chcesz uzyskać wyniki, zmień je na to:

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

NASTĘPNA EDYCJA

Jeśli celem jest aktualizacja t2 wartościami z t1, które NIE są JUŻ w t2, byłoby to mniej więcej tak:

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

Brakującym krokiem było po prostu zwrócenie tylko wyników t1, a następnie wstawienie ich do t2.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wstawianie listy zawierającej wiele wartości w MySQL za pomocą pymysql

  2. Wiele instrukcji INSERT mysql w jednym zapytaniu php

  3. Jak przekonwertować skrypt używający funkcji mysql_, aby używał funkcji mysqli_?

  4. Znaki niełacińskie i ouch

  5. Wyzwalacz MySQL po aktualizacji tylko w przypadku zmiany wiersza