sql >> Database >  >> RDS >> Mysql

waar zit de fout in mijn sql-code?

JOIN t2 ON t1.wid = t1.wid

bedoelde je dat? of bedoel je echt t1.wid =t2.wid? in dat geval wil je een left join.

BEWERKEN

Oké, dus je hebt het opgelost. Dat geeft geen resultaten tenzij er rijen in t2 zijn die een wid hebben die overeenkomt met een rij in t1 met dezelfde wid.

Als je resultaten wilt, verander dit dan in dit:

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

VOLGENDE BEWERKING

Als het doel is om t2 bij te werken met waarden van t1 die nog niet in t2 staan, dan zou het ongeveer zo zijn:

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

De ontbrekende stap was simpelweg om alleen de resultaten van t1 te retourneren en deze vervolgens in t2 in te voegen.



  1. Bereken Max van de som van een geannoteerd veld over een gegroepeerd op query in Django ORM?

  2. DATE() Voorbeelden – MySQL

  3. Hoe Opgeslagen Procedures aanroepen met EntityFramework?

  4. waarom hebben we links en rechts nodig?