এসকিউএল যেখানে .. একাধিক কলামে ধারা


173

এসকিউএল সার্ভারে আমাকে নিম্নলিখিত কোয়েরিটি প্রয়োগ করতে হবে:

select *
from table1
WHERE  (CM_PLAN_ID,Individual_ID)
IN
(
 Select CM_PLAN_ID, Individual_ID
 From CRM_VCM_CURRENT_LEAD_STATUS
 Where Lead_Key = :_Lead_Key
)

তবে WHERE..IN ধারাটি কেবল 1 টি কলামের অনুমতি দেয়। আমি কীভাবে 2 বা আরও বেশি কলামের সাথে অন্য অভ্যন্তর নির্বাচন করতে পারি?


: আমি এখানে প্রাসঙ্গিক সমাধান একটি ওভারভিউ প্রদান করার চেষ্টা করেছিল, ট্রাফিক পেতে সতর্কতা সঙ্গে stackoverflow.com/a/54389589/983722
ডেনিস Jaheruddin

উত্তর:


110

আপনি সাবকোয়ারি থেকে উদ্ভূত টেবিল তৈরি করতে পারেন এবং এই উদ্ভূত টেবিলে টেবিল 1 এ যোগ দিতে পারেন:

select * from table1 LEFT JOIN 
(
   Select CM_PLAN_ID, Individual_ID
   From CRM_VCM_CURRENT_LEAD_STATUS
   Where Lead_Key = :_Lead_Key
) table2
ON 
   table1.CM_PLAN_ID=table2.CM_PLAN_ID
   AND table1.Individual=table2.Individual
WHERE table2.CM_PLAN_ID IS NOT NULL

7
বা আরও সাধারণভাবে নির্বাচন করুন * টেবিল থেকে অন্য টেবিল যোগ করুন (টেবিল.এক্স = অন্যান্য টেবিল.এ এবং টেবিল.ই = অন্যান্য টেবিল.বি)
আলা

4
টেবিল 2 যদি টেবিল 1 এর সন্তানের হয় তবে একাধিক সারিগুলির কী হবে? এবং কেন বাম যোগ দেবেন?
gbn

1
হ্যাঁ, ভিতরে যোগ দিন এখানে আরও অভিনয় হবে। এরকম বাম যোগ দিন এবং টেবিল 2 থেকে NULLs ফিল্টারিং ইনার ব্যবহার করতে শুধু একটি বাগাড়ম্বরপূর্ণ উপায় JOIN
Pstr

ভুল, এটি সারিটি একাধিকবার সরবরাহ করে, ধরে নিয়েছে যে যোগদান করা টেবিলটি বেশ কয়েকবার যোগ হতে পারে ... অন্যথায়, অভ্যন্তরীণ যোগদান করুন এবং আপনি নিজেকে কোথায় ছাড়তে পারবেন।
স্টিফান স্টেইগার

123

পরিবর্তে আপনি যেখানে উপস্থিত রয়েছে সিনট্যাক্সটি ব্যবহার করতে চাইবেন।

SELECT *
FROM table1
WHERE EXISTS (SELECT *
              FROM table2
              WHERE Lead_Key = @Lead_Key
                        AND table1.CM_PLAN_ID = table2.CM_PLAN_ID
                        AND table1.Individual_ID = table2.Individual_ID)

5
এটি কাজ করবে এমন সময়, এটি প্রশ্নযুক্ত অনাবিলিক প্রশ্নের সাথে একটি সম্পর্কিত সম্পর্কিত ক্যোয়ারিতে রূপান্তরিত করে। কোয়েরি অপ্টিমাইজারটি চালাক না হলে এটি আপনাকে ও (n ^ 2) পারফরম্যান্স দিতে পারে :-( তবে সম্ভবত আমি অপটিমাইজারকে অবমূল্যায়ন করছি ...
স্লেসকে

1
আমি ইস্যু ছাড়াই সারাক্ষণ এর মতো সিনট্যাক্স ব্যবহার করি। আপনি যদি কোনও পুরানো অপ্টিমাইজার (6.5, 7, 8 ইত্যাদি) ব্যবহার না করেন তবে এই সিনট্যাক্সটিতে সমস্যা হওয়া উচিত নয়।
mrdenny

1
@ সালস্ক: অস্তিত্বগুলি আরও অনেক ভাল: আমার উত্তরে আমার মন্তব্য দেখুন। এবং প্রথমে এটি পরীক্ষা করুন। @ মির্দেনি: আমি প্রথমে আপনার উত্তরটি ভুলভাবে লিখেছি, আমিও উপস্থিতি ব্যবহার করব
gbn

6
এটি সর্বাধিক দক্ষ, +1। কর্মক্ষমতা তুলনা জন্য আমার ব্লগে এই নিবন্ধটি দেখুন: explainextended.com/2009/06/17/efficient-exists
Quassnoi

1
এমনকি এসকিউএল 2000 সন্ধানটি ওকে (এন ^ 2) এ পরিণত না করেই সর্বাধিক সম্পর্কিত সম্পর্কযুক্ত সাবকোয়ারি পরিচালনা করতে পারে। 6.5। এ ফিরে সমস্যা হতে পারে।
গিলামোনস্টার

14

সমাধান সম্পর্কে সতর্কতা:

অনেকগুলি বিদ্যমান সমাধানগুলি যদি ভুলগুলি না দেয় তবে ভুল ফলাফল দিতে হবে

আপনি যদি কেবলমাত্র টেবিল তৈরির ব্যক্তি হন তবে এটি প্রাসঙ্গিক নাও হতে পারে তবে বেশ কয়েকটি সমাধানের ক্ষেত্রে প্রশ্নযুক্ত কোড থেকে বিভিন্ন সংখ্যক আউটপুট সারি দেওয়া হবে, যখন কোনও টেবিলের কোনওটিতে অনন্য সারি থাকবে না।

সমস্যা সংক্রান্ত বিবৃতি সম্পর্কে সতর্কতা:

একাধিক কলমের সাথে অস্তিত্ব নেই, আপনি যা চান তা যত্ন সহকারে ভাবুন TH

আমি যখন দুটি কলাম সহ একটি দেখি, তখন আমি এটি দুটি জিনিস বোঝার জন্য কল্পনা করতে পারি:

  1. কলাম ক এবং ক কলামের মান অন্য টেবিলটিতে স্বাধীনভাবে উপস্থিত হয়
  2. কলাম ক এবং ক কলামের মান একই সারিতে অন্য সারণীতে উপস্থিত হবে

পরিস্থিতি 1 মোটামুটি তুচ্ছ, কেবল দুটি আইএন স্টেটমেন্ট ব্যবহার করুন।

সর্বাধিক বিদ্যমান উত্তরের সাথে সামঞ্জস্য রেখে, আমি এখানে দৃশ্যের 2 (এবং একটি সংক্ষিপ্ত রায়) এর জন্য উল্লিখিত এবং অতিরিক্ত পদ্ধতির একটি সংক্ষিপ্তসার সরবরাহ করেছি:

উপস্থিত (নিরাপদ, এসকিউএল সার্ভারের জন্য প্রস্তাবিত)

@ মির্দেনি দ্বারা সরবরাহ করা হিসাবে, আপনি যা খুঁজছেন ঠিক সেই রকমই উপস্থিতিগুলি মনে হচ্ছে, তার উদাহরণ এখানে:

SELECT * FROM T1
WHERE EXISTS
(SELECT * FROM T2 
 WHERE T1.a=T2.a and T1.b=T2.b)

বাম সেমি যোগ দিন (নিরাপদ, এটি সমর্থন করে এমন উপভাষাগুলির জন্য প্রস্তাবিত)

এটি যোগদানের জন্য একটি খুব সংক্ষিপ্ত উপায়, তবে দুর্ভাগ্যক্রমে এসকিউএল সার্ভার সহ বেশিরভাগ এসকিউএল উপভাষাগুলি বর্তমানে এটি সমর্থন করে না।

SELECT * FROM T1
LEFT SEMI JOIN T2 ON T1.a=T2.a and T1.b=T2.b

একাধিক IN বিবৃতি (নিরাপদ, তবে কোড ডুপ্লিকেশন থেকে সাবধান থাকুন)

@ ক্যাটাক্লাইজম দ্বারা উল্লিখিত হিসাবে দুটি আইএন বিবৃতি ব্যবহার করে কৌশলটিও করতে পারে, সম্ভবত এটি অন্যান্য সমাধানগুলিকেও ছাড়িয়ে যাবে। যাইহোক, আপনার যা খুব যত্নবান হওয়া উচিত তা হ'ল কোড ডুপ্লিকেশন। আপনি যদি কখনও কোনও আলাদা টেবিল থেকে নির্বাচন করতে চান বা বিবৃতি পরিবর্তন করতে চান তবে এটি আপনার যুক্তিতে অসঙ্গতি তৈরি করা বর্ধিত ঝুঁকি।

বেসিক সমাধান

SELECT * from T1
WHERE a IN (SELECT a FROM T2 WHERE something)
AND b IN (SELECT b FROM T2 WHERE something)

কোড সদৃশ ছাড়াই সমাধান (আমি বিশ্বাস করি এটি নিয়মিত এসকিউএল সার্ভারের অনুসন্ধানগুলিতে কাজ করে না)

WITH mytmp AS (SELECT a, b FROM T2 WHERE something);
SELECT * from T1 
WHERE a IN (SELECT a FROM mytmp)
AND b IN (SELECT b FROM mytmp)

অন্তর্ভুক্ত যোগদান (প্রযুক্তিগতভাবে এটি নিরাপদ করা যায়, তবে প্রায়শই এটি করা হয় না)

আমি কেন ফিল্টার হিসাবে অভ্যন্তরীণ যোগদানের পরামর্শ দেওয়ার পরামর্শ দিচ্ছি না, কারণ অনুশীলনে লোকেরা প্রায়শই ডান টেবিলের অনুলিপিগুলি বাম টেবিলে নকল করতে দেয়। এবং তারপরে বিষয়টিকে আরও খারাপ করার জন্য, তারা কখনও কখনও শেষ ফলাফলটিকে আলাদা করে দেয় যদিও বাম টেবিলটি আসলে অনন্য হওয়ার প্রয়োজন না (বা আপনার নির্বাচিত কলামগুলিতে অনন্য নয়)। ফিউটারমোর এটি আপনাকে বাস্তবে একটি কলাম নির্বাচন করার সুযোগ দেয় যা বাম সারণীতে বিদ্যমান নেই।

SELECT T1.* FROM T1
INNER JOIN 
(SELECT DISTINCT a, b FROM T2) AS T2sub
ON T1.a=T2sub.a AND T1.b=T2sub.b

সর্বাধিক সাধারণ ভুল:

  1. নিরাপদে সাবকিউরি না করে সরাসরি টি 2 এ যোগদান করা। সদৃশ হওয়ার ঝুঁকিতে ফলাফল)
  2. নির্বাচন করুন * (টি 2 থেকে কলাম পেতে গ্যারান্টিযুক্ত)
  3. সি নির্বাচন করুন (গ্যারান্টি দেয় না যে আপনার কলামটি আসে এবং সর্বদা টি 1 থেকে আসে)
  4. কোনও ভুল জায়গায় DISTINCT বা DISTINCT নেই

SEPARATOR সহ কলমের সংযোগ (খুব নিরাপদ নয়, ভয়ঙ্কর পারফরম্যান্স)

কার্যকরী সমস্যাটি হ'ল আপনি যদি কোনও বিভাজনকারী ব্যবহার করেন যা কোনও কলামে ঘটতে পারে তবে ফলাফলটি 100% সঠিক কিনা তা নিশ্চিত করা জটিল। প্রযুক্তিগত সমস্যাটি হ'ল এই পদ্ধতিটি প্রায়শই ধরণের রূপান্তরগুলি অন্তর্ভুক্ত করে এবং সূচকগুলি সম্পূর্ণ উপেক্ষা করে, ফলস্বরূপ সম্ভবত ভয়াবহ কর্মক্ষমতা হয়। এই সমস্যাগুলি সত্ত্বেও, আমাকে স্বীকার করতে হবে যে আমি মাঝে মাঝে এটি ছোট ডেটাসেটগুলিতে অ্যাড-হক প্রশ্নগুলির জন্য ব্যবহার করি।

SELECT * FROM T1
WHERE CONCAT(a,"_",b) IN 
(SELECT CONCAT(a,"_",b) FROM T2)

মনে রাখবেন যে আপনার কলামগুলি যদি সংখ্যাসূচক হয় তবে কিছু এসকিউএল ডায়ালাইকের জন্য আপনাকে সেগুলি প্রথমে স্ট্রিংয়ে কাস্ট করতে হবে। আমি বিশ্বাস করি এসকিউএল সার্ভার এটি স্বয়ংক্রিয়ভাবে করবে।


জিনিসগুলিকে মোড়ানোর জন্য: যথারীতি এসকিউএল-তে এটি করার অনেকগুলি উপায় রয়েছে, নিরাপদ পছন্দগুলি ব্যবহার করা অবাক হয়ে যাবে এবং দীর্ঘ সময় আপনার সময় এবং মাথাব্যথা সাশ্রয় করবে।


13
select * from tab1 where (col1,col2) in (select col1,col2 from tab2)

দ্রষ্টব্য:
ওরাকল সারিগুলিকে উপেক্ষা করে যেখানে নির্বাচিত এক বা একাধিক কলামগুলি নুল হয়। এই ক্ষেত্রে আপনি সম্ভবত NVL কে একটি বিশেষ মানের মানচিত্র করতে NVL -Funtion ব্যবহার করতে চান (এটি মানগুলিতে হওয়া উচিত নয়);

select * from tab1
where (col1, NVL(col2, '---') in (select col1, NVL(col2, '---') from tab2)

2
postgres সমর্থন করে where (colA,colB) in (... some list of tuples...)তবে আমি নিশ্চিত নই যে অন্যান্য ডাটাবেসগুলি একই কাজ করে। আমি জানতে আগ্রহী।
ম্যাক্স মার্ফি

2
এই সিনট্যাক্সটি ওরাকল এবং ডিবি 2/400 এও সমর্থিত (সম্ভবত ডিবি 2ও)। এসকিউএল সার্ভার এটি সমর্থন করে বলে আশা করি।
CrazyIvan1974

ডিবি 2 এটি সমর্থন করে।
টেল্মো মার্কস

এমনকি এসকিউএলাইট এটি সমর্থন করে।
হোলার জাকবস

13

একটি সাধারণ উপস্থিতি ক্লজটি সবচেয়ে পরিষ্কার

select *
from table1 t1
WHERE
EXISTS
(
 Select * --or 1. No difference...
 From CRM_VCM_CURRENT_LEAD_STATUS Ex
 Where Lead_Key = :_Lead_Key
-- correlation here...
AND
t1.CM_PLAN_ID = Ex.CM_PLAN_ID AND t1.CM_PLAN_ID =  Ex.Individual_ID
)

পারস্পরিক সম্পর্কের ক্ষেত্রে যদি আপনার একাধিক সারি থাকে তবে একটি JOIN আউটপুটে একাধিক সারি দেয়, সুতরাং আপনার স্বতন্ত্র প্রয়োজন। যা সাধারণত অস্তিত্বগুলিকে আরও দক্ষ করে তোলে।

নোট SELECT *একটি সাথে যোগ এছাড়াও সারি সীমিত টেবিল থেকে কলাম অন্তর্ভুক্ত করা হবে


2

আপনি যখন কেবলমাত্র একটি অভ্যন্তরীণ অভ্যন্তরীণ যোগদান করতে পারেন তখন কেন উপস্থিত বা ডাইরবিড টেবিলগুলি ব্যবহার করবেন:

SELECT t.*
FROM table1 t
INNER JOIN CRM_VCM_CURRENT_LEAD_STATUS s
    ON t.CM_PLAN_ID = s.CM_PLAN_ID
    AND t.Individual_ID = s.Individual_ID
WHERE s.Lead_Key = :_Lead_Key

যদি (সিএমপুএলএন_আইডি, স্বতন্ত্র_আইডি) এর জুটি স্থিতি সারণীতে স্বতন্ত্র না হয় তবে তার পরিবর্তে আপনার একটি নির্বাচন DISTINCT টি দরকার *।


3
এবং ডায়াস্টিন্টের অর্থ সাধারণত একটি উপস্থিতি আরও দক্ষ
জিবিএন

0
Postgres SQL  : version 9.6
Total records on tables : mjr_agent = 145, mjr_transaction_item = 91800

1. EXISTSটির সাথে ব্যবহার [গড় অনুসন্ধানের সময়: 1.42 সে]

SELECT count(txi.id) 
FROM 
mjr_transaction_item txi
WHERE 
EXISTS ( SELECT 1 FROM mjr_agent agnt WHERE agnt.agent_group = 0 AND (txi.src_id = agnt.code OR txi.dest_id = agnt.code) ) 

IN২. দুটি লাইন ক্লজ সহ ব্যবহার [গড় অনুসন্ধানের সময়: ০.০7 সে]

SELECT count(txi.id) FROM mjr_transaction_item txi
WHERE 
txi.src_id IN ( SELECT agnt.code FROM mjr_agent agnt WHERE agnt.agent_group = 0 ) 
OR txi.dest_id IN ( SELECT agnt.code FROM mjr_agent agnt WHERE agnt.agent_group = 0 )

INNNER JOIN3. নিদর্শন সহ ব্যবহার [গড় অনুসন্ধানের সময়: ২.৯ সে]

SELECT count(DISTINCT(txi.id)) FROM mjr_transaction_item txi
INNER JOIN mjr_agent agnt ON agnt.code = txi.src_id OR agnt.code = txi.dest_id
WHERE 
agnt.agent_group = 0

সুতরাং, আমি দ্বিতীয় বিকল্পটি বেছে নিয়েছি।


ভবিষ্যতের পাঠকদের জন্য সতর্কতা: প্রশ্নের সাথে সামঞ্জস্য রেখে আপনি সম্ভবত ANDবিবৃতি না দিয়ে ORবিবৃতি ব্যবহার করতে চাইবেন ।
ডেনিস জহেরুদ্দিন

@ ডেনিসজাহেরউদ্দীন .. আপনার মন্তব্যের জন্য এবং আপনার উত্তরের খুব সুন্দর বিশদ ব্যাখ্যা করার জন্য আপনাকে ধন্যবাদ। আপনি ঠিক বলেছেন, ORবিবৃতি সম্ভবত নকলগুলি বাড়িয়েছে। আমার ক্ষেত্রে, এমন কোনও সারি নেই যা একই src_idএবং dest_idএকক সারিতে রয়েছে। সুতরাং, আমার ক্ষেত্রে সদৃশ ঘটবে না।
বিপর্যয়

-1

প্রশ্ন:

select ord_num, agent_code, ord_date, ord_amount
from orders
where (agent_code, ord_amount) IN
(SELECT agent_code, MIN(ord_amount)
FROM orders 
GROUP BY agent_code);

উপরের প্রশ্নটি মাইএসকিএল-এ আমার জন্য কাজ করেছিল। নিম্নলিখিত লিঙ্ক উল্লেখ করুন ->

https://www.w3resource.com/sql/subqueries/multiplee-row-column-subqueries.php


-2

আপনি যদি একটি টেবিলের জন্য চান তবে নিম্নলিখিত কোয়েরিটি ব্যবহার করুন

SELECT S.* 
FROM Student_info S
  INNER JOIN Student_info UT
    ON S.id = UT.id
    AND S.studentName = UT.studentName
where S.id in (1,2) and S.studentName in ('a','b')

এবং টেবিল তথ্য অনুসরণ করুন

id|name|adde|city
1   a   ad  ca
2   b   bd  bd
3   a   ad  ad
4   b   bd  bd
5   c   cd  cd

তারপরে অনুসরণ হিসাবে আউটপুট

id|name|adde|city
1   a   ad  ca
2   b   bd  bd

id in (1,2) and studentName in ('a','b')সম্পূর্ণরূপে একই নয় (id, studentName) in ((1,'a'),(2,'b'))। কেবল আইডি = 2 এবং নাম = 'এ' রয়েছে এমন একটি রেকর্ড ভাবেন। অবশ্যই, যদি আইডি অনন্য হয়, তবে এর প্রভাবটি হ্রাস পাবে, তবে তারপরে, আইডিটি অনন্য থাকলে আমাদের নামের উপর মোটেও ফিল্টার করার দরকার নেই।
কোয়েটজলকোটল

-2

আমরা কেবল এটি করতে পারি।

   select *
   from 
    table1 t, CRM_VCM_CURRENT_LEAD_STATUS c
    WHERE  t.CM_PLAN_ID = c.CRM_VCM_CURRENT_LEAD_STATUS
    and t.Individual_ID = c.Individual_ID

-2

কিছু আকারে কলামগুলি একত্রে সংঘবদ্ধ করা একটি "হ্যাক", কিন্তু যখন পণ্যটি একাধিক কলামের জন্য আধা-যোগদান করে না, কখনও কখনও আপনার কোনও বিকল্প থাকে না।

অভ্যন্তরীণ / বাহ্যিক যোগদানের সমাধান যেখানে কাজ করবে না তার উদাহরণ:

select * from T1 
 where <boolean expression>
   and (<boolean expression> OR (ColA, ColB) in (select A, B ...))
   and <boolean expression>
   ...

যখন প্রশ্নগুলি প্রকৃতিতে তুচ্ছ না হয় আপনি মাঝে মাঝে নিয়মিত অভ্যন্তরীণ / বাহ্যিক যোগদানের জন্য বেস টেবিল সেটটিতে অ্যাক্সেস পান না।

আপনি যদি এই "হ্যাক" ব্যবহার করেন তবে আপনি ক্ষেত্রগুলি একত্রিত করার সময় ভুল ব্যাখ্যাকে এড়াতে তাদের মধ্যে যথেষ্ট পরিমাণে সীমানা যুক্ত করার বিষয়ে নিশ্চিত হন, উদাহরণস্বরূপ ColA + ":-:" + ColB


এই উত্তরটি বেমানান বলে মনে হচ্ছে (একত্রীকরণের উল্লেখ করে এবং তারপরে একটি পৃথক উদাহরণ সরবরাহ করে)। : এছাড়াও, একটি লাইটার নোট করুন: আমরা সবসময় একটা চয়েস থাকে ;-) আমি প্রাসঙ্গিক পাদটীকা সঙ্গে এখানে আমার ওভারভিউ করতে সংযুক্তকরণের উদাহরণযোগ করেছিলেন stackoverflow.com/a/54389589/983722
ডেনিস Jaheruddin

-3

আমি এভাবে সহজ প্রতিষ্ঠা করেছি

Select * 
from table1 
WHERE  (convert(VARCHAR,CM_PLAN_ID) + convert(VARCHAR,Individual_ID)) 
IN 
(
 Select convert(VARCHAR,CM_PLAN_ID) + convert(VARCHAR,Individual_ID)
 From CRM_VCM_CURRENT_LEAD_STATUS 
 Where Lead_Key = :_Lead_Key 
) 

এই সাহায্য আশা করি :)


9
খুব, এখানে কোনও সূচক ব্যবহার স্ট্রিং কনক্যাটকে করতে পারে না।
mrdenny

9
এটি বিপজ্জনক হিসাবে আমি এটিকে ভোট দিয়েছি! যদি CM_PLAN_ID = 45এবং Individual_ID = 3তারপরে সংক্ষিপ্ত পরিণতির ফলাফল হয় 453- যা কেস CM_PLAN_ID = 4এবং Individual_ID = 53... সমস্যার জন্য জিজ্ঞাসা করা থেকে পৃথক হয় আমি ভাবতাম
এল রোনোকো

5
.. অবশ্যই আপনি একটি স্বেচ্ছাচারী বিশেষ চর নিয়ে উদ্বুদ্ধ করতে পারেন উদাহরণস্বরূপ 45_3বা 45:3এটি এখনও একটি ভাল সমাধান নয় এবং অবশ্যই যেমন @ এমর্ডেনি বলেছেন যে কলামগুলিতে একটি রূপান্তর ঘটেছে সূচীগুলি এখন ব্যবহার করা হবে না।
এল রোনোকো

1
আমি এটিকেও ভোট দিয়েছি, কারণ এই সমাধানটি কেবলমাত্র দ্রুত "হ্যাক"। এটি ধীর এবং এল রোনোকো যেমন বলেছিলেন, এটি ত্রুটিগুলি হতে পারে।

-4

সহজ এবং ভুল উপায়ে দুটি কলাম একত্রিত করে + বা সংযুক্ত করে একটি কলাম তৈরি করা হবে।

Select *
from XX
where col1+col2 in (Select col1+col2 from YY)

এটি বেশ ধীর গতিতে হবে। প্রোগ্রামিংয়ে ব্যবহার করা যাবে না তবে যদি আপনি কেবল যাচাইয়ের জন্য অনুসন্ধান করছেন তবে কিছু ব্যবহার করা যেতে পারে।


10
প্রকৃতপক্ষে, এবং এটি ত্রুটিগুলির দিকে পরিচালিত করতে পারে, যেহেতু 'আব' + 'সি' = 'এ' + 'বিসি'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.