ورود

View Full Version : میشه بگید مشکل این پرسجو چیه؟



nnnnaa
دوشنبه 17 فروردین 1394, 10:43 صبح
سلام دوستان.
من سه تا جدول کاربر - مطلب - نظرات دارم این پرسجو رو روش زدم فقط اون مطالبی رو میاره که حداقل 1 نظر رو دارن.چون آیدی مطلب رو در نظرات چک میکنه و در نظرات اگر مطلبی نظر نداشته باشه آیدی اون مطلب وجود نداره نشونش نمیده.
من این رو چطور تغییر بدم مطالبی رو که نظر ندارن رو هم نشون بده.

SELECT cn.[con_id],cn.[con_subject],cn.[con_body],[cat_id],cn.[con_visited],cn.[con_date],cm.cm_num,usr.user_name from tbContent cn,(SELECT [user_name],[user_id] FROM tblUser) usr,(SELECT cm_content,count(cm_id) as [cm_num] FROM tbComment where cm_state=1 group by cm_content) cm where cn.con_id=cm.cm_content AND cn.con_state='Yes' AND cn.con_writer=usr.user_id

nnnnaa
سه شنبه 18 فروردین 1394, 08:44 صبح
????????????????????

pezhvakco
سه شنبه 18 فروردین 1394, 11:36 صبح
اگه بشه ساختار جدول ها و روش ذخیره رو بنویسید شاید بشه بهتر راهنمایی بشیند.

چون از این کد دستور شما (زیادی به هم ریخته و بی قانون است) هیچی نفهمیدم.

nnnnaa
سه شنبه 18 فروردین 1394, 21:50 عصر
http://s4.picofile.com/file/8181244276/Untitled.png


این کد که خودم نوشتم درسته منتها مطالبی که نظر ندارند رو نشون نمیده میخوام ستون های زیر رو داشته باشم

--------------------------
con_id , con_subject , con_readmore , cat_id , con_writer , con_visited , con_date , user_name , count(comments) where con_state=1 and cm_state=1



*count(comments) تعداد نظرات یک مطلب اگر نظری ندارد 0 نشان دهد

pezhvakco
چهارشنبه 19 فروردین 1394, 10:51 صبح
شاید این باشه
برای نمایش جدول "مطالب" و "کاربر" با Left Join کار کنید


SELECT Tb01.* ,Tb02.*
,(Select COUNT(Tb03.id)
From dbo.TbComment AS Tb03
Where (Tb01.Con_Id = Tb03.Cm_Content) And (Tb03.Cm_State = 1)) AS Expr1
FROM [dbo].TbContent AS Tb01
Left Join
[dbo].TbUser AS Tb02
On Tb01.Cat_id = Tb02.User_Id
Where Tb01.Con_State = 1

nnnnaa
چهارشنبه 19 فروردین 1394, 12:00 عصر
تعداد نظرات هم خیلی مهمه

pezhvakco
چهارشنبه 19 فروردین 1394, 17:14 عصر
تعداد نظرات هم خیلی مهمه


SELECT Tb01.* ,Tb02.*

,(Select COUNT(Tb03.id)

From dbo.TbComment AS Tb03

Where (Tb01.Con_Id = Tb03.Cm_Content) And (Tb03.Cm_State = 1)) AS Expr1

FROM [dbo].TbContent AS Tb01
Left Join
[dbo].TbUser AS Tb02
On Tb01.Cat_id = Tb02.User_Id
Where Tb01.Con_State = 1