mysql query to select everything except

前端 未结 3 1212
情话喂你
情话喂你 2020-12-14 03:57

i have two mysql tables.

the first is called \"chosen\" and consists of id, user_id, and widget_id fields.

the other is called \"widgets\" and includes sever

3条回答
  •  鱼传尺愫
    2020-12-14 04:53

    Basically, you want to select all rows from widgets that have no associated row in chosen for the given $user_id. You can accomplish this with a LEFT OUTER JOIN looking for the rows that didn't match in the chosen table. Something like this:

    SELECT w.* FROM widgets as w
    LEFT OUTER JOIN chosen as c on c.widget_id=w.widget_id AND c.user_id=$user_id
    WHERE c.id IS NULL;
    

    BTW: I recommend using the newer join syntax over the comma delimited tables join syntax. It's easier to read and understand, especially when it comes to outer joins.

提交回复
热议问题