PDA

View Full Version : سوال: کمک در مورد یک کوئری sql



tecnocomputer2
چهارشنبه 07 مهر 1389, 18:32 عصر
با سلام خدمت تمامی استادان!:قلب:
من تو بانکم این اطلاعات رو دارم.
http://up.iranblog.com/Files73/2fb03d5762d547919a78.jpg
هر نام کاربری میتونه چندین باز یک ایمیل رو واسه ثبتنام استفاده کنه. تو عکس بالا اونجایی که علامت ابی زدم مربوط به ایمیل: sara_khanomi34@yahoo.com هست و اونجایی که با قرمز زدم مربوط به ایمیل: girl_nafas@yahoo.com هست. حالا من یه کوئری میخام که لیست ایمیلهایی که بیشتر از سه بار وارد شدن رو برام نشون بده. یعنی خروجی اطلاعات بالا این باشه:
http://up.iranblog.com/Files73/74f7c5e4418f44bd8f1c.jpg

snail22
چهارشنبه 07 مهر 1389, 19:21 عصر
در این مورد فکر می‌کنم باید با SELECT سطح 2 انجام بدی
با این query امتحان کن



SELECT `username` , `email` as user_email , (
SELECT COUNT(*) FROM `table` WHERE `email`=user_email
) AS counter
FROM `table` WHERE `counter` > 2



بجای table اسم table خودت رو بزار

tecnocomputer2
چهارشنبه 07 مهر 1389, 19:29 عصر
جواب نداد!

snail22
چهارشنبه 07 مهر 1389, 19:36 عصر
شرمنده
می‌شه بگی چطوری کار نکرد
syntax error داد یا نتیجه درست نبود؟

tecnocomputer2
چهارشنبه 07 مهر 1389, 19:38 عصر
اررور میده syntax error

Unknown column 'counter' in 'where clause'

snail22
چهارشنبه 07 مهر 1389, 19:53 عصر
خودم هم امتحان کردم همین ارور رو داد
والا من قبلا کواری پیچیده‌تر هم نوشتم و کار هم می‌کرد

کاش دیگر اساتید! هم نظر می دادن

HH2BN1990
چهارشنبه 07 مهر 1389, 19:59 عصر
اینم یه تست کن ببین جواب میده



SELECT tn.email
FROM TableName tn
GROUP BY tn.email
HAVING COUNT(tn.email) > 3

snail22
چهارشنبه 07 مهر 1389, 20:00 عصر
البته تنها مشکل query من اینه که counter که تو sub-query محاسبه می‌شه(امتحان کردم واقعا محاسبه می‌شه) در کواری سطح اول قابل دسترس نیست!

snail22
چهارشنبه 07 مهر 1389, 20:03 عصر
واسه HH2BN1990 (http://www.barnamenevis.org/forum/member.php?u=128206) رو امتحان کردم کار کرد
کواری ایشون منطقی‌تر و کم حجم‌تره

tecnocomputer2
چهارشنبه 07 مهر 1389, 20:14 عصر
HH2BN1990 ممنون کد کار کرد.
snail22 هم تشکر