tag:blogger.com,1999:blog-3194536352323585971.post669810279941757128..comments2024-03-20T16:01:01.278+04:00Comments on Жизнь - это движение! А тестирование - это жизнь :): SQL - join it! Запросы к БДОльга Назина (Киселева)http://www.blogger.com/profile/03026399106706734657noreply@blogger.comBlogger31125tag:blogger.com,1999:blog-3194536352323585971.post-6272683280678266962021-05-22T17:31:27.351+04:002021-05-22T17:31:27.351+04:00Спасибо большое за фидбек, очень приятно))Спасибо большое за фидбек, очень приятно))Ольга Назина (Киселева)https://www.blogger.com/profile/03026399106706734657noreply@blogger.comtag:blogger.com,1999:blog-3194536352323585971.post-56412455641303966692021-05-22T14:02:15.131+04:002021-05-22T14:02:15.131+04:00Ольга спасибо за подробное освещение тематики. На ...Ольга спасибо за подробное освещение тематики. На просторах нэта ваш ресурс один из .. достоин внимания. Продолжайте в таком же духе, Вы Молодец. Sergeyhttps://www.blogger.com/profile/04602897463715300203noreply@blogger.comtag:blogger.com,1999:blog-3194536352323585971.post-24529959538625129062019-08-12T21:48:54.225+04:002019-08-12T21:48:54.225+04:00не за что)не за что)Ольга Назина (Киселева)https://www.blogger.com/profile/03026399106706734657noreply@blogger.comtag:blogger.com,1999:blog-3194536352323585971.post-56283270648204209902019-08-12T18:57:33.066+04:002019-08-12T18:57:33.066+04:00статья супер, спасибо большое!статья супер, спасибо большое!Anonymoushttps://www.blogger.com/profile/05419754359416434016noreply@blogger.comtag:blogger.com,1999:blog-3194536352323585971.post-72919951637067812662019-07-09T15:22:02.998+04:002019-07-09T15:22:02.998+04:00Эта колонка была в предыдущей статье о создании ба...Эта колонка была в предыдущей статье о создании базы и таблиц.ZooSublimationhttps://www.blogger.com/profile/04716452374204233168noreply@blogger.comtag:blogger.com,1999:blog-3194536352323585971.post-78619550973067133932019-04-28T22:12:19.449+04:002019-04-28T22:12:19.449+04:00В моей статье нет такой колонкиВ моей статье нет такой колонкиОльга Назина (Киселева)https://www.blogger.com/profile/03026399106706734657noreply@blogger.comtag:blogger.com,1999:blog-3194536352323585971.post-89461333865872714292019-04-28T21:13:00.326+04:002019-04-28T21:13:00.326+04:00Объясните в поле isAuthor что попадает? Откуда дан...Объясните в поле isAuthor что попадает? Откуда данные?perov2phttps://www.blogger.com/profile/00819837994204444949noreply@blogger.comtag:blogger.com,1999:blog-3194536352323585971.post-24053244021628813372018-12-06T15:02:49.591+04:002018-12-06T15:02:49.591+04:00В моей статье нет такой колонкиВ моей статье нет такой колонкиОльга Назина (Киселева)https://www.blogger.com/profile/03026399106706734657noreply@blogger.comtag:blogger.com,1999:blog-3194536352323585971.post-89660094321773803562018-12-06T13:47:30.229+04:002018-12-06T13:47:30.229+04:00Я просто не понял колонку isAuthor. Я сам ее запол...Я просто не понял колонку isAuthor. Я сам ее заполняю? И когда там 1, а когда 0Артемhttps://www.blogger.com/profile/08308446631947744696noreply@blogger.comtag:blogger.com,1999:blog-3194536352323585971.post-63920796981258967282018-12-06T13:02:51.243+04:002018-12-06T13:02:51.243+04:00Если речь про инструмент из статьи, то тут вроде в...Если речь про инструмент из статьи, то тут вроде все написано. Если про другой — то гуглите "insert" командуОльга Назина (Киселева)https://www.blogger.com/profile/03026399106706734657noreply@blogger.comtag:blogger.com,1999:blog-3194536352323585971.post-77817532798950459062018-12-06T11:33:32.700+04:002018-12-06T11:33:32.700+04:00Я не понял, как заполнять таблицу BookAuthorship, ...Я не понял, как заполнять таблицу BookAuthorship, объясните пожалуйста!Артемhttps://www.blogger.com/profile/08308446631947744696noreply@blogger.comtag:blogger.com,1999:blog-3194536352323585971.post-10923033188103712102018-06-16T19:52:57.193+04:002018-06-16T19:52:57.193+04:00Всё очень просто, нужно выбрать из таблицы BookAut...Всё очень просто, нужно выбрать из таблицы BookAuthorship пересечение множеств тех людей, которые являются авторами книг и тех, которые являются соавторами книг. Дальше выводим firstName и lastName из таблицы Author тех, чьи id находятся в этом пересечении множеств.Anonymoushttps://www.blogger.com/profile/04168178321656577994noreply@blogger.comtag:blogger.com,1999:blog-3194536352323585971.post-37781064561868954392018-06-16T19:45:17.212+04:002018-06-16T19:45:17.212+04:00По последнему запросу Jana:
SELECT firstName, las...По последнему запросу Jana:<br /><br />SELECT firstName, lastName<br />FROM<br /> Author <br />WHERE<br /> id = (SELECT author.id<br /> FROM <br /> (SELECT author.id FROM<br /> BookAuthorship<br /> WHERE<br /> isAuthor = TRUE) a<br /> INNER JOIN<br /> (SELECT author.id FROM<br /> BookAuthorship<br /> WHERE<br /> isAuthor = FALSE) b<br /> ON<br /> a.author.id = b.author.id);Anonymoushttps://www.blogger.com/profile/04168178321656577994noreply@blogger.comtag:blogger.com,1999:blog-3194536352323585971.post-18552653863328986072017-09-02T20:58:36.526+04:002017-09-02T20:58:36.526+04:00По последнему запросу. Jana, он вы водит как автор...По последнему запросу. Jana, он вы водит как авторов так и соавторов (у которых больше одной книги). Я думаю нужно ограничиться только авторами. У меня такой вариант:<br /><br />SELECT a.firstName AS 'First Name', a.lastName AS 'Last Name', ba.qty_books as '# of Books'<br />FROM (<br /> SELECT authorId, COUNT(*) as qty_books<br /> FROM BooksAutorship<br /> GROUP BY authorId, isAuthor<br /> HAVING isAuthor = 1 AND COUNT(*) > 1<br />) ba<br />INNER JOIN Author a<br />ON ba.authorId = a.id;Anonymoushttps://www.blogger.com/profile/11858219902679934738noreply@blogger.comtag:blogger.com,1999:blog-3194536352323585971.post-72548267903428264572017-03-14T18:50:43.523+04:002017-03-14T18:50:43.523+04:00Да, код получился неслабый))) Но с ним лучше прийт...Да, код получился неслабый))) Но с ним лучше прийти на форум - http://software-testing.ru/forum/. Я постараюсь не забыть попробовать у себя, но не обещаю)) Базы такой у меня давно нет, надо подготовить дамп на будущее будет)))Ольга Назина (Киселева)https://www.blogger.com/profile/03026399106706734657noreply@blogger.comtag:blogger.com,1999:blog-3194536352323585971.post-36822139434419252252017-03-14T17:17:35.197+04:002017-03-14T17:17:35.197+04:00может кто-то знает путь покороче..может кто-то знает путь покороче..Anonymoushttps://www.blogger.com/profile/16111597856674376789noreply@blogger.comtag:blogger.com,1999:blog-3194536352323585971.post-87581568704377147662017-03-14T17:16:51.086+04:002017-03-14T17:16:51.086+04:00Все. Я сделала. Но мне кажется - какой-то странный...Все. Я сделала. Но мне кажется - какой-то странный "маленький" код получится...<br />select a.firstName , a.lastName , count (BA.bookId) as Num_Cr from dbo.BookAutorship BA<br />join dbo.Book b on b.id = BA.bookId<br />join dbo.Autor a on a.id = BA.autorId<br />join <br />(select b.id, b.name , BA.autorId from <br />(dbo.BookAutorship BA<br />join dbo.Book b on b.id = BA.bookId<br />join dbo.Autor a on a.id = BA.autorId<br /> join (select b.id, b.name , count(BA.autorId) as Num_Writ<br />from dbo.BookAutorship BA<br />join dbo.Book b on b.id = BA.bookId<br />join dbo.Autor a on a.id = BA.autorId<br />group by b.id , b.name<br />having count (BA.autorId) >1) p on p.id = BA.bookId)<br />group by b.id , b.name , BA.autorId ) f on f.autorId = a.id<br />group by a.firstName , a.lastName <br />having count (BA.bookId) >1<br />Anonymoushttps://www.blogger.com/profile/16111597856674376789noreply@blogger.comtag:blogger.com,1999:blog-3194536352323585971.post-28549160596048768942017-03-13T14:33:26.701+04:002017-03-13T14:33:26.701+04:00Ок. Как вижу это я( может это не с той степи...но)...Ок. Как вижу это я( может это не с той степи...но) - при группировке и подсчете autorId для каждого произведения мы выбираем те у которых autorId>1 = и это указывает на то, что у произведения 2 автора. Следовательно, если у именно этих определенных авторов подсчитать bookId для каждого из них и выбрать те у которых bookId>1 - то и удовлетвориться условие и для участия в соавторстве и написании своих отдельных произведений.<br />select b.id,b.name , count(BA.autorId)<br />from dbo.BookAutorship BA<br />join dbo.Book b on b.id = BA.bookId<br />join dbo.Autor a on a.id = BA.autorId<br />group by b.id , b.name<br />having count (BA.autorId) >1<br />Так выводятся произведения у которых более одного автора<br />но именно произведения...а мне надо чтобы выходили имя и фамилия, авторов этих произведений..чтобы задать внешний селект...<br />или я вообще не с того ракурса все это вижу..<br />Anonymoushttps://www.blogger.com/profile/16111597856674376789noreply@blogger.comtag:blogger.com,1999:blog-3194536352323585971.post-45638908328271559232017-03-13T08:23:25.971+04:002017-03-13T08:23:25.971+04:00Расскажите, что пробовали, какие результаты получи...Расскажите, что пробовали, какие результаты получили, какие выводы сделали :)Ольга Назина (Киселева)https://www.blogger.com/profile/03026399106706734657noreply@blogger.comtag:blogger.com,1999:blog-3194536352323585971.post-1204903298678457972017-03-13T03:57:22.284+04:002017-03-13T03:57:22.284+04:00Прошу! напишите пожалуйста код к этому запросу - &...Прошу! напишите пожалуйста код к этому запросу - " Найти авторов, которые имеют свои и участвовали в соавторстве хотя бы одной книги". Хочу разобраться, но никак не выходит.. понимаю что надо через вложенный селект..начинаю с внутреннего где нахожу произведения имеющие более одного автора, потом хочу вывести фио и задать внешний селект для этих авторов , чтобы у каждого было более 1 книги...но застряла на выводе фио...Anonymoushttps://www.blogger.com/profile/16111597856674376789noreply@blogger.comtag:blogger.com,1999:blog-3194536352323585971.post-46573251264243592402017-02-10T23:13:06.716+04:002017-02-10T23:13:06.716+04:00Вместо cross join в статье должно быть full join. ...Вместо cross join в статье должно быть full join. Его результат как раз объединение left join и right join.<br />a cross join b on - такой конструкции вообще нет, есть просто a cross join b без on.<br />cross join - это декартово произведение двух множеств.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3194536352323585971.post-90560733450513761762016-09-26T13:13:53.710+04:002016-09-26T13:13:53.710+04:00Карина, неистово рекомендую приложение для Android...Карина, неистово рекомендую приложение для Android LearnSQL - очень эффективная форма обучения, ознакомление с SQL происходит на лету. Если что - я не рекламирую апп, я просто им восхищаюсь :)Anonymoushttps://www.blogger.com/profile/03047397858070848971noreply@blogger.comtag:blogger.com,1999:blog-3194536352323585971.post-88803667971128554032016-09-26T13:13:35.858+04:002016-09-26T13:13:35.858+04:00Карина, неистово рекомендую приложение для Android...Карина, неистово рекомендую приложение для Android LearnSQL - очень эффективная форма обучения, ознакомление с SQL происходит на лету. Если что - я не рекламирую апп, я просто им восхищаюсь :)Anonymoushttps://www.blogger.com/profile/03047397858070848971noreply@blogger.comtag:blogger.com,1999:blog-3194536352323585971.post-8735314395688360132016-09-05T20:46:46.997+04:002016-09-05T20:46:46.997+04:00В статье сейчас все верно)В статье сейчас все верно)Ольга Назина (Киселева)https://www.blogger.com/profile/03026399106706734657noreply@blogger.comtag:blogger.com,1999:blog-3194536352323585971.post-41335001673989427072016-09-05T20:46:35.442+04:002016-09-05T20:46:35.442+04:00Карина, пожалуйста! Рада, что статьи вам помогли )...Карина, пожалуйста! Рада, что статьи вам помогли )))Ольга Назина (Киселева)https://www.blogger.com/profile/03026399106706734657noreply@blogger.com