/
  • دو تا دستور where in

  • ارسال پاسخ   امتیاز موضوع:
    • 0 رأی - میانگین امیتازات: 0
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی دو تا دستور where in
    نویسنده پیام
    navidsb آفلاین
    عضو جدید
    **

    ارسال‌ها: 17
    تاریخ عضویت: ۱۳۹۳ اسفند ۳
    اعتبار: 0
    تشکرها : 4
    ( 0 تشکر در 0 ارسال )
    ارسال: #1
    دو تا دستور where in
    سلام
    میشه بگین مشکل سینتکس این کوئری چیه همش اررو میده
    کد PHP:
    SELECT property.PropertyNumber FROM property

    INNER JOIN property_option ON property
    .PropertyNumber property_option.PropertyNumber WHERE property_option.OptionNumber IN (1,GROUP BY property.PropertyNumber HAVING COUNT(DISTINCT property_option.ID) =

    INNER JOIN property_type ON property
    .PropertyNumber property_type.PropertyNumber WHERE property_type.TypeNumber IN (1,)GROUP BY property.PropertyNumber HAVING COUNT(DISTINCT property_type.ID) =
    (آخرین ویرایش در این ارسال: ۱۳۹۴ شهريور ۲ ۱۲:۳۱ عصر، توسط navidsb.)
    ۱۳۹۴ شهريور ۲ ۱۲:۳۰ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    hamid_80386 آفلاین
    حمید عباسی
    ***

    ارسال‌ها: 1,479
    تاریخ عضویت: ۱۳۹۰ بهمن ۱۶
    اعتبار: 62
    تشکرها : 1216
    ( 1253 تشکر در 748 ارسال )
    ارسال: #2
    RE: دو تا دستور where in
    چه ارروی می ده؟
    __________________________________________________________________________
    هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
    ۱۳۹۴ شهريور ۲ ۱۲:۴۲ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    navidsb آفلاین
    عضو جدید
    **

    ارسال‌ها: 17
    تاریخ عضویت: ۱۳۹۳ اسفند ۳
    اعتبار: 0
    تشکرها : 4
    ( 0 تشکر در 0 ارسال )
    ارسال: #3
    RE: دو تا دستور where in
    کد PHP:
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INNER JOIN property_option ON property.PropertyNumber = property_option.Property' at line 9 
    می خوام یه پروپرتی رو براساس تایپ واپشن های اون فیلتر کنم وای دی پروپرتی ها رو تو خروجی داشته باشم.
    (آخرین ویرایش در این ارسال: ۱۳۹۴ شهريور ۲ ۰۱:۰۵ عصر، توسط navidsb.)
    ۱۳۹۴ شهريور ۲ ۰۱:۰۳ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    shgninc آفلاین
    سید سجاد شاهچراغیان
    ***

    ارسال‌ها: 1,493
    تاریخ عضویت: ۱۳۸۹ خرداد ۱۹
    اعتبار: 32
    تشکرها : 1402
    ( 666 تشکر در 504 ارسال )
    ارسال: #4
    RE: دو تا دستور where in
    احتمالا اینطوری بشه:
    کد:
    SELECT property.PropertyNumber
            FROM property p INNER JOIN property_option po ON p.PropertyNumber = po.PropertyNumber
            INNER JOIN property_type pt ON p.PropertyNumber = pt.PropertyNumber
            WHERE pt.TypeNumber IN (1,2 ) and po.OptionNumber IN (1,3 )
            GROUP BY p.PropertyNumber
            HAVING COUNT(DISTINCT property_type.ID) =2
    __________________________________________________________________________
    سالهــــا مـــــى گــــــذرد، حادثه ها مى آید
    انتظـــــار فـــــــرج از نیمـــــه خــــــرداد کشم

    [تصویر:  ShowPicture.aspx?ID=52750d12-5d92-4286-9...height=100]
    ۱۳۹۴ شهريور ۲ ۰۱:۳۲ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : navidsb hamid_80386
    navidsb آفلاین
    عضو جدید
    **

    ارسال‌ها: 17
    تاریخ عضویت: ۱۳۹۳ اسفند ۳
    اعتبار: 0
    تشکرها : 4
    ( 0 تشکر در 0 ارسال )
    ارسال: #5
    RE: دو تا دستور where in
    (۱۳۹۴ شهريور ۲ ۰۱:۳۲ عصر)shgninc نوشته شده توسط:  احتمالا اینطوری بشه:
    کد:
    SELECT property.PropertyNumber
            FROM property p INNER JOIN property_option po ON p.PropertyNumber = po.PropertyNumber
            INNER JOIN property_type pt ON p.PropertyNumber = pt.PropertyNumber
            WHERE pt.TypeNumber IN (1,2 ) and po.OptionNumber IN (1,3 )
            GROUP BY p.PropertyNumber
            HAVING COUNT(DISTINCT property_type.ID) =2

    ارور رو نداد ولی فیلتر درست عمل نکرد.به ازای
    کد PHP:
    pt.TypeNumber IN (1,) and po.OptionNumber IN (1,


    این دو جدول رو دارم.
    جدول :property_type
    کد PHP:
    CREATE TABLE IF NOT EXISTS `property_type` (
      `
    IDint(11NOT NULL AUTO_INCREMENT,
      `
    PropertyNumberint(4NOT NULL,
      `
    TypeNumberint(50NOT NULL,
      
    PRIMARY KEY (`ID`)
    ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_persian_ci AUTO_INCREMENT=25 ;





    INSERT INTO `property_type` (`ID`, `PropertyNumber`, `TypeNumber`) VALUES
    (13531),
    (
    14532),
    (
    15533),
    (
    16543),
    (
    17545),
    (
    18556),
    (
    19558),
    (
    20563),
    (
    21562),
    (
    22561),
    (
    23541),
    (
    24551); 

    جدول :property_option

    کد PHP:
    CREATE TABLE IF NOT EXISTS `property_option` (
      `
    IDint(11NOT NULL AUTO_INCREMENT,
      `
    PropertyNumberint(11NOT NULL,
      `
    OptionNumberint(11NOT NULL,
      
    PRIMARY KEY (`ID`)
    ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=53 ;





    INSERT INTO `property_option` (`ID`, `PropertyNumber`, `OptionNumber`) VALUES
    (35531),
    (
    36532),
    (
    37533),
    (
    39543),
    (
    40545),
    (
    41556),
    (
    42558),
    (
    43562),
    (
    45561),
    (
    46563),
    (
    47568),
    (
    48539),
    (
    49534),
    (
    50551),
    (
    51542),
    (
    52541); 
    (آخرین ویرایش در این ارسال: ۱۳۹۴ شهريور ۲ ۰۱:۵۹ عصر، توسط navidsb.)
    ۱۳۹۴ شهريور ۲ ۰۱:۵۴ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    shgninc آفلاین
    سید سجاد شاهچراغیان
    ***

    ارسال‌ها: 1,493
    تاریخ عضویت: ۱۳۸۹ خرداد ۱۹
    اعتبار: 32
    تشکرها : 1402
    ( 666 تشکر در 504 ارسال )
    ارسال: #6
    RE: دو تا دستور where in
    بعد در خروجی چی باید دیده شود؟
    تازه خود جدول property را نزاشتید...
    __________________________________________________________________________
    سالهــــا مـــــى گــــــذرد، حادثه ها مى آید
    انتظـــــار فـــــــرج از نیمـــــه خــــــرداد کشم

    [تصویر:  ShowPicture.aspx?ID=52750d12-5d92-4286-9...height=100]
    (آخرین ویرایش در این ارسال: ۱۳۹۴ شهريور ۲ ۰۲:۲۵ عصر، توسط shgninc.)
    ۱۳۹۴ شهريور ۲ ۰۲:۲۳ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    navidsb آفلاین
    عضو جدید
    **

    ارسال‌ها: 17
    تاریخ عضویت: ۱۳۹۳ اسفند ۳
    اعتبار: 0
    تشکرها : 4
    ( 0 تشکر در 0 ارسال )
    ارسال: #7
    RE: دو تا دستور where in
    (۱۳۹۴ شهريور ۲ ۰۲:۲۳ عصر)shgninc نوشته شده توسط:  بعد در خروجی چی باید دیده شود؟
    تازه خود جدول property را نزاشتید...

    در خروجی باید ای دی پروپرتی های فیلتر شده ،داده بشه.
    مثلا ملکی که
    کد PHP:
    pt.TypeNumber IN (1,
    باشه سه تاست:53و54و56

    و ملکی که
    کد PHP:
    po.OptionNumber IN (1,
    باشه 56و55 هست

    که اگر از اینا اشتراک بگیریم واز فیلتر بگذرونیم
    کد PHP:
    pt.TypeNumber IN (1,) and po.OptionNumber IN (1,
    فقط ملک 56 رو باید بهمون بده .

    از جدول پروپرتی فقط یک ای دی (PropertyNumber) توی این دو جدول داریم.من ای دی ملک مورد نظر رو بعد فیلتر میخوام.
    ۱۳۹۴ شهريور ۲ ۰۳:۲۷ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    navidsb آفلاین
    عضو جدید
    **

    ارسال‌ها: 17
    تاریخ عضویت: ۱۳۹۳ اسفند ۳
    اعتبار: 0
    تشکرها : 4
    ( 0 تشکر در 0 ارسال )
    ارسال: #8
    RE: دو تا دستور where in
    کسی میدونه چطوری باید این فیلتر رو انجام بدم؟
    ۱۳۹۴ شهريور ۲ ۱۰:۱۰ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    shgninc آفلاین
    سید سجاد شاهچراغیان
    ***

    ارسال‌ها: 1,493
    تاریخ عضویت: ۱۳۸۹ خرداد ۱۹
    اعتبار: 32
    تشکرها : 1402
    ( 666 تشکر در 504 ارسال )
    ارسال: #9
    RE: دو تا دستور where in
    ساختار جدول property را هم قرار دهید تا ببینم میشه کاریش کرد؟
    __________________________________________________________________________
    سالهــــا مـــــى گــــــذرد، حادثه ها مى آید
    انتظـــــار فـــــــرج از نیمـــــه خــــــرداد کشم

    [تصویر:  ShowPicture.aspx?ID=52750d12-5d92-4286-9...height=100]
    ۱۳۹۴ شهريور ۲ ۱۰:۵۷ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    navidsb آفلاین
    عضو جدید
    **

    ارسال‌ها: 17
    تاریخ عضویت: ۱۳۹۳ اسفند ۳
    اعتبار: 0
    تشکرها : 4
    ( 0 تشکر در 0 ارسال )
    ارسال: #10
    RE: دو تا دستور where in
    (۱۳۹۴ شهريور ۲ ۱۰:۵۷ عصر)shgninc نوشته شده توسط:  ساختار جدول property را هم قرار دهید تا ببینم میشه کاریش کرد؟
    ممنون.حل شد.
    کد PHP:
    SELECT p.PropertyNumber
    FROM property p
    JOIN property_option  USING 
    (PropertyNumber)
    JOIN property_type    USING (PropertyNumber)
    WHERE OptionNumber IN (1,8
      AND 
    TypeNumber   IN (1,2
    GROUP BY p.PropertyNumber 
    HAVING COUNT
    (DISTINCT OptionNumber) = 
       
    AND COUNT(DISTINCT TypeNumber)   = 2
    (آخرین ویرایش در این ارسال: ۱۳۹۴ شهريور ۳ ۱۲:۵۰ صبح، توسط navidsb.)
    ۱۳۹۴ شهريور ۲ ۱۱:۰۳ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    « قدیمی تر | تازه‌ تر »

    ارسال پاسخ
    پرش به انجمن:


    کاربرانِ درحال بازدید از این موضوع: 1 مهمان
    IranPHP.org | تماس با ما | بازگشت به بالا | بازگشت به محتوا | بایگانی | پیوند سایتی RSS