استفاده از دستور Union در Mysql

گاهی اوقات ساختار دیتابیس باید بصورتی باشد که یک سری اطلاعات در ۲ یا چند جدول ذخیره شده و حالا میخواهیم گزارشی از یک عبارت بگیرم .

به نظر من یکی از کاربردهای این دستور در جستجو در جدول های آرشیو است .

SELECT  name,price FROM tb1 a


where a.name = "vahid"

UNION  
SELECT  name,price FROM tb2 b
 
 
where b.name = "vahid"

دستور فوق شما عبارت vahid را در ۲ جدول نمایش می دهد و حاصل آن را در هر ۲ جدول نمایش می دهد .

نکاتی در مورد union :

۱- باید موارد Select شده در هر دو Select یکسان باشد مثلا من در مثال فوق ۲ فیلد name,price را انتخاب کرده ام

۲- فیلد های انتخاب شده باید از یک نوع باشد

۳-شما نمی توانید جستجو را بر اساس یک فیلد که در یکی از جدول ها وجود ندارد بدست آورید باید آن فیلد که در where قرار میگیرد در هر ۲ جدول به صورت منطقی وجود داشته باشد

۴- شما به جای union میتوانید از union all نیز استفاده کنید اما استفاده از union all موارد تکراری را که برابر فیلد Where میباشد را حذف میکند.

 

مثلا اگر در جدول  اول مقدار name = vahid , price =2000  باشد و در جدول دوم name = vahid , price =1000 باشد تنها مقدار جدول اول که معادلSelect  اول میباشد را نمایش میدهد.

 

فرض کنید میخواهید نتایج هر ۲ جدول را در هم ادغام کنید مثال فوق که اجرا میشود نتیجه زیر را نمایش میدهد

vahid  —- ۱۰۰۰

vahid —- 2000

 

اگر شما بخواهید هر جمع حاصل هر ۲ جدول را نمایش بدهد باید آنها را در یک Sub query قرار دهید

SELECT  

sum(t.ss) from

(

SELECT name,sum(price) as ss FROM tb1 a

where a.name = "vahid"
 
UNION  
SELECT  name,sum(price) as ss FROM tb2 b
 
 
where b.name = "vahid"
) t

 

توضیح برنامه فوق این است که دو Select موجود در Subquery جمع نتایج خود را بدست آوردند و سپس در متفیر ss قرار دادند در داخل Subquery ما همان برنامه قبل را نوشتیم اما حالا میخواهیم جمع نتایج هر ۲ جدول را جمع بزنیم . مقدار t حامل همان نتایج قبل است و آن را به عنوان یک جدول فرض می بیند وقتی که ما در Select اصلی که در ابتدای برنامه قرار دارد sum(t.ss) را وارد میکنیم جمع ۲ نتیجه را یکی میکند و حاصل مقدار زیر است

vahid  —- ۳۰۰۰

 

سایت Pattern های گرافیکی زیبا

سلام امروز میخوام یک سایت خوب را معرفی کنم این سایت برای طراحانی کاربرد دارد که میخواهند از Pattern ها در پس زمینه وب سایت استفاده کنند .

کافی است سری به سایت زیر بزنید
http://subtlepatterns.com

درج تصویر پس زمینه بعد از متن در CSS

سلام برای خود من سوال بود که چطوری میتونم کاری بکنم که بعد از عنوانی که برای یک منو انتخاب میکنم بتونم یک طرح گرافیکی را قرار بدم یک راه حل کاربردی را برای شما دوستان معرفی میکنم.


.title_with_bg
{
font-size:14px;
font-weight:20px;
}
.title_with_bg:after {

background: url("../img/title-bg.jpg") no-repeat;
display: block;
position: relative;
width: 20%;

padding-bottom: 1%;
background-size: 100%;

content: "";

display: inline-block;

}

انتخاب کمترین رکورد در mysql

Select min Rows in mysql Group by userid

سلام . روز بخیر. فرض کنید هر مشتری مبالغ مختلفی خرید داشته است در دیتابیس userid را به همراه مبالغ مختلف خرید او ذخیره کرده ایم حالا میخواهیم کمترین خرید هر مشتری را بدست آوریم

CREATE TABLE `order` (
  `id` int(11) NOT NULL,
  `userid` int(11) NOT NULL,
  `price` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

 
INSERT INTO `order` (`id`, `userid`, `price`) VALUES
(۳, ۱, ۱۰۰),
(۴, ۱, ۲۰۰),
(۵, ۳, ۱۰۰),
(۶, ۳, ۶۰۰);

حالا فرض کنید کاربر شماره ۱ و ۳ هر دو ۲ خرید داشته اند ما میخواهیم هر کاربر تفکیک شود و کمترین خرید را برای او نمایش دهد

 SELECT  a.id,a.userid,price FROM `order` a

INNER JOIN
(
    SELECT  t.userid  , MIN(t.price) AS miin
    FROM   `order` t 
    GROUP BY userid
) b ON b.miin = a.price and b.userid = a.userid

 

نتیجه

id —|—userid—-|—price

۳     |     ۱        |     ۱۰۰

۵     |     ۳        |     ۱۰۰

 http://sqlfiddle.com/#!9/c9bad/2

 

 

 

آیا Laravel بهترین فریم ورک PHP است ؟

سلام به نظر من بهترین فریم ورک فریم ورکی است که شما را در رساندن به هدف اصلی شما نزدیک کرده است من چنیدن فریم ورک را تست کرده ام . مثلا یکی از فریم ورک ساده و حرفه ای مانند SLIM به راحتی کار شما راه راه میاندازد اما لاراول یک خوبی دارد . به نظر من در ایران اگر میخواهید در شرکت یا تیمی خیلی سریع به کارگرفته شوید چیزی که روی بورس است را انتخاب کنید چرا که اگر شما یک فریم ورک خاص را داشته باشید که در تیم مورد نظر مورد استفاده نباشد عملا فقط به درد تیم و یا خودتان میخورد .

لاراول خوب است چون از تیم پشتیبانی و توسعه قوی برخورداره و برای هر نوع پروژه ای میتوان ازش استفاده کرد و این باعث میشه که خیلی سریع رشد کنه.

inner join در یک subquery در mysql

سلام ، مدتیه که برای اجرای پروژه ای تجزیه و تحلیل دیتا شدیدا به query های پیچیده mysql  احتیاج داشتم . یکی از کاربردی ترین بخش ها موضوع subquery است که در مثال زیر نتیجه هر ۲ query زیر یکسان است

یک نکته که در مورد subquery وجود دارد این است که ابتدا subquery اجرا میشود


SELECT buy.userid, t.userid FROM user_buys buy

inner join (
select  t1.userid
from user_buys t1

)t on t.userid = buy.userid

برنامه فوق معادل برنامه زیر است

 
SELECT buy.userid, t.userid FROM user_buys buy

inner join  user_buys t  on t.userid = buy.userid

 

در استفاده از subquery ها شما نمیتوانید متغیری را از query اصلی را دریافت کنید چرا که اول subquery اجرا میشود

حل مشکل Wifi limited connection

معمولا در ویندوز ۸ به بالا در اتصال به wifi به مشکل برمیخورد من خودم این مشل را با لپ تاپم داشتم و بعد از جستجو بالا در سایت ها توانستم یک راه حل اثر گذار را پیدا کنم.

در start فایل cmd را با دسترسی Run as administrator اجرا کنید و ۲ دستور زیر را وارد کنید.

netsh int ip reset reset.log

netsh winsock reset catalog

. وضغیت ذخیره انرژی را نیز غیر فعال کنید Configuration wifi و در

استفاده از سیستم های کنترل نسخه در کار تیمی

یکی از مشکلات بزرگی که در شرکت های کوچک یا بزرگ ایران اینه که همه پروژه ها را در پوشه های مختلف نگهداری میکنند و بعد کارمند ها فایل های تغییر داده شده را به مدیر میدهند تا در نسخه اصلی آپدیت کند یا اینکه برای هر مشتری از یک نرم افزار که تولید کرده اند به صورتی نصب میکنند که اگر در نسخه مشتری دیگر دقت شود تفاوت و بخش های زیادی ار نظر پنهان شده است .

سیستم های کنترل نسه یا VCS ها به شرکت ها کمک میکند تا نرم افزارهای خود را با امنیت و کارایی بیشتری نگهداری و توسعه دهند . معروف ترین آنها Github است که نسخه رایگان آن برای پروژه های متن باز مورد استفاده قرار میگیرد در کنار آن bitbucket هم فعالیتی مشابهه Githib دارد اما برای مواد تجاری برای شرکت های کوچک و متوسط سرویس رایگان برای پروژه های خصوصی را هم فراهم کرده است.

دستوارت bitbucket مانند Github است و برای کنترل مخازن میتوان از نرم افزار Sourcetree استفاده کرد

طراحی UI با یک راه حل ذهنی…

امروز تصمیم گرفتم تا یک ساختار انحصاری تولید کنم ، خیلی ساده عرض کنم ، وقتی که بحث روی طراحی میاد اگر بخوایم خیلی سطحی نگاه کنیم اونوقت متوجه میشیم که دردسر های زیادی را باید به جون بخریم ، مطمئنا در بازاری که مشتری های مختلف توقعات مختلفی هم دارند ، وقتی که می خوام یک سایت ساده راه بندازم ، خیلی دوست ندارم که بشینم با وردپرس و قالب های آماده سروکله بزنم ، بدتر از همه اینه که یه قالب رایگان را بخوای اینقدر تغییر بدی تا بشه همون چیزی که میخوای.

در مورد حل این چنین مسائل تصمیم گرفتم وب سایت وبینه را که برای اولین بار با وردپرس مدیریت مشد را روی یک پلتفرم خاص طراحی  و تولید کنم ، دوست نداشتم همه مطالب سایت قبلی را از بین ببریم و برای اینکه بخوام به سیستم جدید کوچ کنم تنها یک راه حل وجود داشت که پایگاه داده وردپرس را مطابق ساختاری که در پایگاه داده CMS  اختصاصی خودم تغییر بدم جمعلا برای این کار همه پست ها انتخاب کردم و ستون های غیر مرتبط را حذف کردم ، و تنها ۲ مورد باقی موند ۱- محتوا – ۲ عنوان

شروع کردم همین ۲ مورد را توی پایگاه داده جدید آوردم و برای اولین بار در بهار ۹۴ یک CMS  بسیار ساده را راه اندازی کنم …

این برنامه ای که من نوشتم اولش خیلی مشکل داشت بارها بی حوصله میشدم و دوست داشتم که بیخیال بشم و برگردم روی همین وردپرس اما به خودم گفتم که اگر بیشتر تلاش کنم قطعا به نتیجه خواهم رسید….

و همین طور هم شد ، برای اولین بار وب سایت یک شرکت دارو سازی را ۲ زبانه باهاش راه اندازی کردم که برای خودمم خیلی جالب بود که تونستم از این برنامه استفاده کنم و الان تقریبا بخش های اصلی را توش آوردم و از نظر seo هم خیلی خوب جواب میده ، توی این روزا قراره فروشگاه هم بهش اضافه کنم یک فروشگاه بسیار کارآمد که همون ساختار یکپارچه را بتونه هندل کنه… فقط اینکه امروز خیلی خسته بودم و تصمیم گرفتم که این نوشته را برای شما دوستان قرار بدم ، شاید موجب جلب توجهشدن شما برای چند دقیقه شده باشه.

چرا مردم به شبکه های اجتماعی داخلی علاقه ندارند؟

هنگامی که رئیس جمهور آقای روحانی میگن که نکنه مردم نگران اطلاعاتشون هستن ! چرا باید به کشور بیگانه اعتماد کنند و به کشور خودشون بی اعتماد باشن !؟

 

واقعا به نظر من چند دلیل کلی داره که چرا شبکه هایی مانند تویتر – فیبسوک – اینستاگرام – تلگرام و… را بیشتر از شبکه های اجتماعی داخلی قبول دارند.

۱-شبکه های اجتماعی خارجی توانایی های بسیار بیشتری دارد و فقط به گفتگو محدود نمی شود

۲- از دورانی که تازه اینترنت در ایران وارد شده بود فیسبوک داشت کار می کرد و خیلی از ایرانی ها با این شبکه های انس گرفته اند

۳-واقعا مردم نگراند که حرف هاشون یا تصاویر خصوصی که دارند به دلیل  نو پا بدون شبکه های اجتماعی در ایران لو برن

۴- هنوز شبکه های اجتماعی داخل کشور جواب ندادن و مردم نگران فیلتر شدن یا کلا جم شدن هاست و دامنه و… بشه.

۵-شما بگید ؟ 🙂