Соединение таблиц sql
Всем доброго времени суток?!
Я новичок в SQL, выполняя задание наткнулась на такую схему:
select count(*)
from testdat,
testart
where testdat.testart = testart.code
and testart.meaning = 'function'
and testdat.valid is null;
Может мне пожалуйста кто-нибудь помочь объяснить этот кусочек кода? Впервые сталкиваюсь с таким соединением через . и =
Всех заранее благодарю?
Ответы (1 шт):
Соединение через запятую select … from a,b — это элемент синтаксиса первого стандарта SQL 1987 года. Соответствует CROSS JOIN в более поздних версиях.
При добавлении WHERE условия сравнения столбцов из обеих таблиц, CROSS JOIN становится эквивалентным INNER JOIN, например select … from a,b where a.field=b.field == select … from a cross join b where a.field=b.field == select … from a inner join b on a.field=b.field
Таким образом приведённый запрос эквивалентен
select count(*)
from testdat
join testart on testdat.testart = testart.code
where testart.meaning = 'function'
and testdat.valid is null;