PDA

View Full Version : نحوه مرتب کردن اطلاعات دو کوئری بر اساس یه ستون مشترک



aliphp1
جمعه 16 فروردین 1392, 23:11 عصر
سلام دوستان لطفا راهنمایی کنید
من دو تا حدول دارم که در این حدول ها یک فیلد تاریخ مشترک دارم
البته یکسری اطلاعات دیگه شون هم مشترک هست
حالا می خوام با دو تا کوئری جداگانه اطلاعاتی رو از هر کدوم از این دو حدول بگیرم
بعد اطلاعات کل دو جدول رو براساس زمان (که یک فیلد مشتری هست ) مرتب کنم و نمایش بدم
یک مثال میزنم تا کامل روشن بشه
فرض کنید جدول یک رو به این شکل داریم
جدول اول با سه فیلد id date service
جدول دوم با چهار فیلد id date ser1 ser2
حالا می خوایم اطلاعات کل این دو جدول رو به ترتیب فیلد date که در هر دو مشترک هست مرتب کنیم
می خوام ببینم اصلا شدنی هست این کار و اگر هست روشش رو لطف کنید

aliphp1
جمعه 16 فروردین 1392, 23:48 عصر
دوشتان لطفا کمک کنن

MMSHFE
شنبه 17 فروردین 1392, 09:11 صبح
خوب هر کوئری رو جداگانه بر اساس فیلد date مرتب کنید (با کمک ORDER BY). اگه منظورتون رو خوب متوجه نشدم، لطفاً بیشتر توضیح بدین.

boysilent
شنبه 17 فروردین 1392, 09:17 صبح
فک کنم به این شکل بشه !!
select * from tb1,tb2 order by tb1.date,tb2.date desc

aliphp1
سه شنبه 20 فروردین 1392, 23:38 عصر
خوب هر کوئری رو جداگانه بر اساس فیلد date مرتب کنید (با کمک ORDER BY). اگه منظورتون رو خوب متوجه نشدم، لطفاً بیشتر توضیح بدین.
ممنون که جواب دادید
ببینید فرش کنید من دو تا جدول با اطلاعات تقریبا یکسان دارم حالا می خوام از اینا گزارش بگیرم و میخوام که این گزارش از کل دو جدول باشه و جدا جدا نباشه
مثلا شما دو تا جدول دارید که تا دیروز همه یوزر های سایت تون وقتی ثبت نام می کردن اطلاعات شون توی اون جدول ثبت می شد و از امروز توی جدول دوم ثبت میشه
حالا بخوایم بر اساس سن کاربران مرتبشون کنیم

MMSHFE
سه شنبه 20 فروردین 1392, 23:43 عصر
باید با UNION دو تا Select که میگیرین رو با هم ادغام کنید و بعد، یک Select کلی از نتیجه Union بگیرین و برحسب فیلد موردنظر مرتب کنید. مثال:
SELECT * FROM ((SELECT * FROM `table`) UNION (SELECT * FROM `table2`)) AS `temp` ORDER BY `date`

aliphp1
یک شنبه 25 فروردین 1392, 20:30 عصر
باید با UNION دو تا Select که میگیرین رو با هم ادغام کنید و بعد، یک Select کلی از نتیجه Union بگیرین و برحسب فیلد موردنظر مرتب کنید. مثال:
SELECT * FROM ((SELECT * FROM `table`) UNION (SELECT * FROM `table2`)) AS `temp` ORDER BY `date`

ممنون من دقیقا همین رو می خواستم
فقط یه سوال : اگه بعضی فیلد های این دو تا جدول همنام نباشن مشکلی پیش نمیاد و چطوری باید کار بشه ؟

MMSHFE
یک شنبه 25 فروردین 1392, 22:58 عصر
باید تعداد و نام ستونها یکسان باشه. در غیر اینصورت باید SELECT حداگانه برای هرکدوم بنویسید.