• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
دو تا دستور where in
#1
سلام
میشه بگین مشکل سینتکس این کوئری چیه همش اررو میده
کد پی‌اچ‌پی:
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) =
  پاسخ
تشکر شده توسط :
#2
چه ارروی می ده؟
هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط :
#3
کد پی‌اچ‌پی:
#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 
می خوام یه پروپرتی رو براساس تایپ واپشن های اون فیلتر کنم وای دی پروپرتی ها رو تو خروجی داشته باشم.
  پاسخ
تشکر شده توسط :
#4
احتمالا اینطوری بشه:
کد:
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]
  پاسخ
تشکر شده توسط : navidsb hamid_80386
#5
(۱۳۹۴ شهریور ۰۲, ۰۲:۳۲ ب.ظ)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

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


این دو جدول رو دارم.
جدول :property_type
کد پی‌اچ‌پی:
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

کد پی‌اچ‌پی:
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); 
  پاسخ
تشکر شده توسط :
#6
بعد در خروجی چی باید دیده شود؟
تازه خود جدول property را نزاشتید...
سالهــــا مـــــى گــــــذرد، حادثه ها مى آید
انتظـــــار فـــــــرج از نیمـــــه خــــــرداد کشم

[عکس: ShowPicture.aspx?ID=52750d12-5d92-4286-9...height=100]
  پاسخ
تشکر شده توسط :
#7
(۱۳۹۴ شهریور ۰۲, ۰۳:۲۳ ب.ظ)shgninc نوشته: بعد در خروجی چی باید دیده شود؟
تازه خود جدول property را نزاشتید...

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

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

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

از جدول پروپرتی فقط یک ای دی (PropertyNumber) توی این دو جدول داریم.من ای دی ملک مورد نظر رو بعد فیلتر میخوام.
  پاسخ
تشکر شده توسط :
#8
کسی میدونه چطوری باید این فیلتر رو انجام بدم؟
  پاسخ
تشکر شده توسط :
#9
ساختار جدول property را هم قرار دهید تا ببینم میشه کاریش کرد؟
سالهــــا مـــــى گــــــذرد، حادثه ها مى آید
انتظـــــار فـــــــرج از نیمـــــه خــــــرداد کشم

[عکس: ShowPicture.aspx?ID=52750d12-5d92-4286-9...height=100]
  پاسخ
تشکر شده توسط :
#10
(۱۳۹۴ شهریور ۰۲, ۱۱:۵۷ ب.ظ)shgninc نوشته: ساختار جدول property را هم قرار دهید تا ببینم میشه کاریش کرد؟
ممنون.حل شد.
کد پی‌اچ‌پی:
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
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان