Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Różnica wierszy miedzy tabelami
Forum PHP.pl > Forum > Przedszkole
kl4mor
Witam
Mam pewnien problem, tzn mam dwie tabele

TAB 1.
| id | value |
| 1 | 123 |
| 2 | 1234 |
....
| 100 | 123499 |


TAB 2.
| id | value |
| 1|123 |
| 2|1234|
....
| 100 | 123499 |
| 101 | 123423499 |
| 102 | 122343499 |


portrzebuje pobrać tylko wiersze które nie wuystępują w TAB 1 na jednym zapytaniu?

mortus
Można to zrobić na trzy sposoby:
  1. SELECT `t2`.* FROM `TAB2` `t2` LEFT JOIN `TAB1` `t1` ON `t1`.`id` = `t2`.`id` WHERE `t1`.`id` IS NULL

  1. SELECT `t2`.* FROM `TAB2` `t2` WHERE `t2`.`id` NOT IN (SELECT `id` FROM `TAB1`)

  1. SELECT `t2`.* FROM `TAB2` `t2` WHERE NOT EXISTS (SELECT NULL FROM `TAB1` `t1` WHERE `t1`.`id` = `t2`.`id`)

Pierwsze dwa są wydajniejsze.
kl4mor
oto mi chodziło smile.gif wielkie dzięki smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.