نمایش نتایج 1 تا 4 از 4

نام تاپیک: مشکل در inner join

  1. #1

    Question مشکل در inner join

    سلام دوستان

    یه مشکل عجیب واسم پیش اومده
    فرض کنید تو بانکم سه تا جدول هست به نام های کاربر و شهر و تحصیلات کاربر
    که جدول کاربر از طریق کد کاربر به جدول تحصیلات واز طریق کد شهر به جدول شهر وصل شده
    جدول تحصیلات هم از طریق کد محل تحصیل به جدول شهر وصل شده

    حالا اگه بخوام تمام inner join هارو لحاظ کنم اون موقع اگه اگه فیلد هارو بخوام نمایش بدم رکورد هایی که کد شهر کاربر وکد محل تحصیلشون باهم فرق کنه رو نشون نمیده مثلا اگه (فردی باشه با نام علی شهر تهران و محل تحصیل مشهد )تو نمایش چنین فردی رو نمایش نمی ده


    حالا اگه inner join شهر با تحصیلات رو بردارم جواب میده ولی رکورد ها تکرای میشه مثلا وهر فرد رو دوبار نمایش میده که من از طریق slelect distinct اینو حل کردم ولی یه مشکل دیگه بوجود اورد واون اینه که فیلدی تو جدول کاربر دارم که وجودش اجباری و این فیلد ntext است و select distinc این فیلد رو ارور میده

  2. #2

    نقل قول: مشکل در inner join

    دستوری که نوشتید رو اینجا بذارید تا بهتر بشه کمکتون کرد.
    چیزی که حدس میزنم اینه که جدول ها رو از طریق 2 Join به هم وصل کردید در حالی که باید Join های کاربر با تحصیلات و تحصیلات و شهر رو جداگانه انجام بدید (در کل 3 Join انجام بشه).
    Select
    U.Name,
    C.CityName,
    S.StudyName,
    C2.CityName as StudyCityName
    From
    Users U inner join City C
    On
    U.CityId = C.ID
    Inner Join Study S
    On
    U.StudyId = S.Id
    Inner Join City C2
    On
    S.CityId = C2.Id

    این فیلد ntext است
    به جای ntext از nvarchar استفاده کنید.

  3. #3

    نقل قول: مشکل در inner join

    به جای ntext از nvarchar استفاده کنید
    جالب بود ولی نمی دونم چرا به فکر خودم نرسید استفاده از nvarchar به جای ntext
    راستی یه سوال دیگه اگه از
    nvarchar(max)
    استفاده کنم مشکلی پیش نمیاد ؟ چون شاید مقدار زیادی رو وارد کنن

  4. #4

    نقل قول: مشکل در inner join

    مشکلی پیش نمیاد ؟ چون شاید مقدار زیادی رو وارد کنن
    استفاده از این نوع محدودیتهایی داره (بطور مثال نمیشه روی این نوع فیلدها ایندکس تعریف کرد) ولی از نظر تغییر ntext به nvarchar مشکلی پیش نمیاد. این نوع داده تا 1,073,741,824 کاراکتر گنجایش داره ، در صورتیکه این حجم داده(2 گیگ) برای شما کافی نیست باید تغییراتی توی طراحی دیتابیس بدید چون SQL Server بیشتر از این مقدار رو پشتیبانی نمیکنه.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •