where is the fault in my sql code?

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

This code nothing returns to me could you help why i do not take values back??

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

JOIN t2 ON t1.wid = t1.wid

did you mean that? or do you really mean t1.wid = t2.wid? in which case you’d want a left join.

EDIT

Okay, so you fixed it. That won’t show up any results unless there are rows in t2 that have a wid that matches a row in t1 with the same wid.

If you want results, change it to this:

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

NEXT EDIT

If the goal is to update t2 with values from t1 that aren’t ALREADY in t2, then it would be something like this:

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

The missing step was simply to return only t1’s results, and then insert them into t2.

Method 2

I think you have a typo.

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


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x