PDA

View Full Version : نحوه بازیابی رکورد ها به کمک جدول میانی



alireza.tofigh
دوشنبه 20 تیر 1390, 11:47 صبح
سلام
من یک جدول دارم که توش مشخصات کتاب ها ذخیره شده است
تو یه جدول دیگه نویسندگان، چون یک کتاب ممکنه بیش از یک نویسنده داشته باشه و یا یک نویسنده بیش از یک کتاب داشته باشه از جدول میانی استفاده کرده ام. جدول میانی شامل دو فیلد است. BookId و AuthorId
تو ذخیره مشکلی نداشتم و به عنوان مثال برای کتاب با آیدی 1 نویسندگان با آیدی 1 و 2 ذخیره شده است.
اما در بازیابی مشکل دارم.
آیا تا اینجا کارم درست بوده؟
می خوام نویسندگان یک کتاب را تو صفحه وب داخل گریدویو نمایش بدم.
مشکلم اینه که نمی دونم چطوری نویسنده های یک کتاب رو پیدا کنم. چه کوئری باید بنویسم. یا چه روشی درسته؟
خواهشا دوستان که قبلا این کار کردن یا نظری دارند کمکم کنن. ممنون

Galawij
دوشنبه 20 تیر 1390, 12:19 عصر
تا اینجا روش پیاده سازی بانک اطلاعاتیتون درسته.
برای گزارش هم به این صورت عمل کنید.
Select AuthorName From TbAuthors Inner Join TbAuthorsBooks On TbAuthors.IdAuthors=TbAuthorsBooks.IdAuthors Inner Join TbBooks On TbBooks.IdBooks=TbAuthorsBooks.IdBooks where TbBooks.IdBook=@IdBook
TbAuthorsBooks جدول میانی است که شما تعریف کردید.

alireza.tofigh
دوشنبه 20 تیر 1390, 12:37 عصر
خوبه این به کارم میاد اما وقتی که می خوام لیست کامل کتاب ها و نویسندگان رو نمایش بدم چه کوئری بنویسم
آخه تو یه گرید هم می خوام لیست کامل کتاب ها رو داشته باشم
تو اینجا دیگه قرار نیست پارامتری ارسال بشه آیا این درسته؟

Select AuthorName From TbAuthors Inner Join TbAuthorsBooks On TbAuthors.IdAuthors=TbAuthorsBooks.IdAuthors Inner Join TbBooks On TbBooks.IdBooks=TbAuthorsBooks.IdBooks

alireza.tofigh
دوشنبه 20 تیر 1390, 15:28 عصر
کوئری که من نوشته بودم این بود
SELECT Fullname
FROM Authors
WHERE Id IN(SELECT AuthorId FROM Book_Author WHERE BookId =2 )

اما مشکل من اینه که چطور این نتیجه رو بزارم کنار سایر نتایج( عنوان کتاب و تاریخ چاپ و ... ) و ازش استفاده کنم. لطفا دوستان راهنمایی کنن. ممنون.