На самом деле проблема встречается очень даже часто:

Дано две таблицы (tableA, tableB), в которых присутсвует семантически эквивалентная колонка, для простоты предположим что поле id, таблицы A, указывает на поле uid, таблицы B (простейший внешний ключ). Далее предположим нам нужно получить список пользователей из таблицы А, которые не представленны в таблице B. Как это сделать? Легко! Используем LEFT JOIN (обратите внимание на IS NULL):

SELECT a.* FROM tableA a LEFT JOIN tableB b ON a.id = b.uid WHERE b.uid IS NULL

Удачного дня!

  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Reddit
  • Technorati
  • email
  • Print
  • DZone
  • eKudos
  • LinkedIn
  • StumbleUpon
  • Tumblr
  • Twitter
, ,
Trackback

no comment untill now

Add your comment now