ساختار LEFT JOIN در MYSQL

Join یکی از دستوارت مهم در mysql است با استفاده از این دستور میتوان موارد مغاییر و نامغاییر دو جدول را بررسی کرد .

	--table1 data
	1
	2
	3
	4
  
	--table2 data
	5
	3
	2
	6
  

با توجه به جداول فوق دستور زیر

select  * FROM table1 t1
  LEFT JOIN table2 t2 	 ON   t1.id = t2.id
   

نتیجه برابر خواهد شد

 table1 | table2
 ----------------
 1		|	2
 2		|	3
 3 		|	
 4 		|	
  

هنگامی که شما select from را یک جدول تعیین میکنید معیار انتخاب آن میشود یعنی در ستور فوق مواردی که در table1 هستند انتخاب میشوند به اضافه موارد موجود در table2 ای که در table1 وجود دارد/

 

جمع زدن یک ستون با مقدار خاص در mysql

سلام . امروز میخوام در مورد یکی از دستورهای mysql صحبت کنم این دستور مثل دستور ساده IF رفتار میکنه با این شرایط که اگر ستون مورد نظر برابر مقدار خاصی شد سپس بتواند جمع آن مقدار خاص را بدست بیاورد

			SUM(IF(t7.code = 'pay', t4.amount, 0)) AS 'pay',
			SUM(IF(t7.code = 'rec', t4.amount, 0)) AS 'rec' 
			
			SUM(CASE WHEN t7.code = 'pay' THEN t4.amount ELSE -t4.amount END) AS amount33

ایجاد کلید بین دو جدول موجود در mysql

با دستور زیر میتوان بین دو جدول کلید خارجی تعریف کرد با این حالت که اگر منبع پاک شد مقادیر جدول NULL شود در صورت آپدیت Update شود

  ALTER TABLE user ADD CONSTRAINT bank_id_relation FOREIGN KEY (bank_id) REFERENCES accounting_banks (id)
  ON DELETE SET NULL ON UPDATE CASCADE; 
 

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

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

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

SELECT  name,price FROM tb1 a


where a.name = "vahid"

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

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

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

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

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

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

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

 

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

 

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

vahid  —- 1000

vahid —- 2000

 

اگر شما بخواهید هر جمع حاصل هر 2 جدول را نمایش بدهد باید آنها را در یک 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 ما همان برنامه قبل را نوشتیم اما حالا میخواهیم جمع نتایج هر 2 جدول را جمع بزنیم . مقدار t حامل همان نتایج قبل است و آن را به عنوان یک جدول فرض می بیند وقتی که ما در Select اصلی که در ابتدای برنامه قرار دارد sum(t.ss) را وارد میکنیم جمع 2 نتیجه را یکی میکند و حاصل مقدار زیر است

vahid  —- 3000

 

درج تصویر پس زمینه بعد از متن در 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
(3, 1, 100),
(4, 1, 200),
(5, 3, 100),
(6, 3, 600);

حالا فرض کنید کاربر شماره 1 و 3 هر دو 2 خرید داشته اند ما میخواهیم هر کاربر تفکیک شود و کمترین خرید را برای او نمایش دهد

 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

3     |     1        |     100

5     |     3        |     100

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

 

 

 

inner join در یک subquery در mysql

سلام ، مدتیه که برای اجرای پروژه ای تجزیه و تحلیل دیتا شدیدا به query های پیچیده mysql  احتیاج داشتم . یکی از کاربردی ترین بخش ها موضوع subquery است که در مثال زیر نتیجه هر 2 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

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

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

netsh int ip reset reset.log

netsh winsock reset catalog

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

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

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

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

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

رعایت حقوق نویسنده با ترفند

اگر بخواهیم ارزش محتوا را در یک سایت در نظر بگیرم ، تقریبا از همه چیز بالاتر و مهم تره ، هنگامی که شما با تحقیق و تلاش یک محتوای تازه برای سایت خود تولید می کنید باید یک راه حل برای جلوگیری از کپی آن وجود داشته باشد.

با استفاده از دستورات css میتوان امکان انتخاب یک متن را با موس مسدود کرد این روش در همه مرورگر ها و IE10 به بالا جواب میدهد

 

 

#description {
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
-o-user-select: none;
user-select: none;
}

var elem = document.getElementById(“description”);
elem.unselectable = “on”; // For IE and Opera

دردسر الکسا بر سر وب مستران

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

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

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

من میخوام یک راه حل بهتر پیشنهاد کنم.

در بخش web master tools  گوگل یک بخش به نام Search Analytics وجود داره که ارتباط دقیقی با بازدید و میانگین رتبه شما نسبت به کلید واژه های سایت دارد ، این مورد یک گزینه با نام Average position دارد که یک میانگین به سایت شما میدهد این رتبه هر روز آپدیت میشود و نسبت به نوع وب سایت و رقبای شما از طرف گوگل تجزیه و تحلیل میشه ؛ بهتره به جای صرف زمان روی الکسا سعی کنید به صورت ارگانیک و طبیعی یک بازدید کننده واقعی و با ارزش داشته باشید.

مدیریت همزمان چندین ایمیل توسط GMAIL

مسلما مدیریت چندین اکانت ایمیل برای همه ما کاری سخت است ، لذا اگر یک سیستم مدیریت همزمان چند ایمیل وجود داشته باشد کار ارسال ، دریافت و آرشیو را با یک حساب Gmail می توانید به خوبی مدیریت کنید.

برای اجرای این آموزش مرحل زیر را دنبال کنید

من میخوام در این آموزش مدیریت ایمیل های POP3 را توسط SMTP آموزش بدهم ، فرض کنید یک سایت دارید با نام webineh.net حالا این سایت ایمیل info@webineh.net را دارد شما برای مدیریت ایمیل ایمیل باید وارد پنل webmail شوید یا از طریق smtp توسط نرم افزار outlook اقدام به ارسال و دریافت کنید.

اما گوگل برای شما یک راه حل خوب درست کرده که نیاز به نصب هیچ نرم افزار جانبی روی کامپیوتر خود ندارید و با یک حساب کاربری در گوگل همرمان همه را مدیریت کنید.

1-در gmail خود وارد شوید

2- در منو گوشته سمت راست بالا مانند تصویر زیر روی گزینه setting کلیک کنید.

1

3- بعد از باز شدن وارد تب account and import شوید و در قسمت Check mail from other accounts (using POP3) گزینه Add a POP3 mail account you own را انتخاب کنید

2

در این قسمت کافی است که اطلاعات مورد نظر از قبیل نام کاربری ایمیل مانند info@webineh.net و رمز ورود به آن را وارد کنید و در صورت ارتباط برقرار شدن مراحل wizard را تا آخر ادامه دهید.

در پایان از شما سوال میپرسد که قصد ارسال از این ایمیل را نیز دارید اگر تمایل به انجام این کار دارید مجدد نام کاربری و رمز عبور را وارد میکنید توجه بفرمایید که در این قسمت باید آدرس smpt سرور را وارد کنید در برخی از سرور ها smtp.webineh.net است و در برخی دیگر mail.webineh.net صحیح بودن گزینه مورد نظر را بعد از تلاش از مدیر هاستینگ بپرسید.