sub query در mysql

love4php

Active Member
سلام .
من از query در Mysql استفاده می کنم که در آن از subquery استفاده میشود .
این درخواست بصورتیه که من اطلاعات یک جدول را خارج می کنم بعد در sub query دوباره همان جدول را درگیر می کنم
این دستور مورد نظر هستش
کد:
SELECT id as CheckedID , c_id 
FROM table1 
WHERE c_id in 
	(select c_id from table1 where id != CheckedID)

مشکلی که هستش اینکه که این درخواست در لوکال local کار م دهد ولی در سرور کار نمی دهد و CheckedID را به عنوان یک فیلد نمی شناسد !!!

راه حل چیه ؟!
ممنون
 

love4php

Active Member
ممنون دوست عزیز ولی مسئله بزرگی و کوچکی نیست !!
دوستان دقت کنند که بنده نمی خواهم کوئری دیگری بنویسم . من دنبال دلیل هستم ، نه دنبال کوئری
 

P.H.P

Member
سلام

اینو چک کن

کد:
SELECT `id` AS `CheckedID`, `c_id` 
FROM table1 
WHERE `c_id` IN 
    (SELECT `c_id` FROM table1 WHERE `id` != `CheckedID`)
 

love4php

Active Member
نه عزیز مشکل از این چیزا نیست !! من فکر میکنم مربوط به تنظیمات mysql هستش ولی نمی دونم حتی چی باید سرچ کنم !!
 

k2-4u

Well-Known Member
مشکلی که هستش اینکه که این درخواست در لوکال local کار م دهد ولی در سرور کار نمی دهد و checkedid را به عنوان یک فیلد نمی شناسد !!!

راه حل چیه ؟!
ممنون
راه حل اینه که از این دستور استفاده نکنید
فکر کنم این از اون مدل دستوراییه که روی سرور معمولا غیر فعال می کنند
 

foranyone

Well-Known Member
راه حل اینه که از این دستور استفاده نکنید
فکر کنم این از اون مدل دستوراییه که روی سرور معمولا غیر فعال می کنند


دستور اونقدرها هم پیچیده نیست که غیرفعال باشه ، بعید میدونم .

error چی میده ؟ همیشه وقتی سوالی مطرح میکنین نگین کار نمیکنه ، نمیشه ،توضیحات کامل بدین دوست من:rose:
 

love4php

Active Member
خطا را عرض خطا میگه که column نا شناختست .. البته این را هم به دوستان بگم مشکل از ورژن هم نیست چون روی سرور ورژن 5 نصب شده !

کد:
#1054 - Unknown column 'CheckedID' in 'where clause'
 
آخرین ویرایش:

mosi20

Active Member
فکر کنم باید اینجوری بنویسی :
table1.CheckedID
تست نکردم فقط حدس میزنم که اسم تیبل را با یک نقطه باید قبل از اسم فیلدهات بزاری
 

love4php

Active Member
دوستان راه حل را پیدا کردم ، گفتم شاید در آینده این مشکل واسه یکی پیش بیاد واسه همین راه حلش را اینجا بگم .
قبلش از همه دوستان که نظراتشون و راهنمایی هاشون را ارئه دادند ممنونم

راه حل :
نباید نام فیلد را با as استفاده کنم باید نام جدول را با as به یک نامدیپه تغییر بدم یعنی :

کد:
SELECT id , c_id 
FROM table1 as vTable 
WHERE c_id in 
	(select c_id from table1 where id != vTable.id)

:rose:
 

جدیدترین ارسال ها

بالا