Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > ต้องการดึงข้อมูลที่ไม่ซ้ำกัน จาก 2 ตาราง ดูข้างในครับ



 

ต้องการดึงข้อมูลที่ไม่ซ้ำกัน จาก 2 ตาราง ดูข้างในครับ

 



Topic : 103092



โพสกระทู้ ( 33 )
บทความ ( 2 )



สถานะออฟไลน์




ตารางแรกเก็บค่าทั้งหมด
id idname

ตารางที่สองเก็บค่าที่เคยแสดงไปแล้ว
id iduser

อยากทราบวิธีกำหนดเงื่อนไขการแสดง โดยหากเคยแสดงออกมาแล้ว จะไม่แสดงผลซ้ำอีก



Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-11-26 18:18:47 By : benzbenz900 View : 10011 Reply : 13
 

 

No. 1



โพสกระทู้ ( 11,835 )
บทความ ( 10 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


Code (SQL)
select table1.* from table1 left join table2 on table1.id = table2.id where table2.id is null







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-11-26 18:52:11 By : PlaKriM
 


 

No. 2



โพสกระทู้ ( 33 )
บทความ ( 2 )



สถานะออฟไลน์


คือใน ตารางแรก ชื่อ testing
ฟ

ตารางที่ 2 ชื่อ quizshow
ิ

และมี $_SESSION['UserID']

แล้วที่นี้ผมอยากให้ข้อมูลในตารางแรก ชื่อ testing แสดงข้อมูลไม่ซ้ำกับตารางที่ 2 ชื่อ quizshow โดยอ้างจาก id จากตารางแรก และ ตารางที่2 แล้วเช็ค กับ iduser จาก $_SESSION['UserID'] โดยถ้าทั้งหมดนี้ตรงกัน จะไม่แสดงซ้ำอีกครั้ง

ผมลองใช้ if ตรวจสอบแต่ว่ายังใช้งานไม่ได้
หากทั้งสองตาราง ส่งค่าที่ไม่ชนกันออกมา
มันก็จะไม่เข้าเงื่อนไง

ผมเลยอยากได้ Code (SQL) ที่ใช้สั่งให้เทียบกันก่อนแล้วค่อยแสดงมันออกมานะครับ
ช่วยทีนะครับ
Code (PHP)
session_start();
include("config.php");
//testing
$userid = $_SESSION['UserID'];
$sql="Select * FROM testing order by rand() limit 1";
$db_query=mysql_query($sql);
//quizshow
$quizshow="Select * FROM quizshow order by rand() limit 1";
$db_queryquizshow=mysql_query($quizshow);
$resultquizshow=mysql_fetch_array($db_queryquizshow);
//วนหาคำถามที่เคยแสดง
while($result=mysql_fetch_array($db_query))
{
$i++;
if($result["id"] == $resultquizshow["id"] && $userid == $resultquizshow["iduser"])
{
echo "ซ้ำ"
}
else if($result["id"] != $resultquizshow["id"] || $userid != $resultquizshow["iduser"])
{
echo "ไม่ซ้ำ"
}
}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-11-26 21:06:26 By : benzbenz900
 

 

No. 3



โพสกระทู้ ( 3,468 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

ใช้ mysql
NOT IN()

ดึงรายการid ที่ไม่ต้องการเอามาก่อน จอยด้วย ,
ใช้กับ NOT IN() กับตารางใหญ่
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-11-26 21:15:35 By : pjgunner.com
 


 

No. 4



โพสกระทู้ ( 11,835 )
บทความ ( 10 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


ถ้าบอกไปแล้วไม่ลองทำ ก็ไม่รู้จะช่วยยังไงต่ออะนะ

ถ้าจะให้แสดงหมดทุก record แล้วอยากบอกว่าซ้ำ ไม่ซ้ำ ก็ใช้ ifnull() ได้ หรือ case when ก็ได้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-11-27 04:32:08 By : PlaKriM
 


 

No. 5



โพสกระทู้ ( 33 )
บทความ ( 2 )



สถานะออฟไลน์


ขอบคุณทุกท่านมากนะครับ ผมทำได้แล้วละครับ ใช้วิธีแรกที่คุณ PlaKriM บอกมานะครับ

Code
select table1.* from table1 left join table2 on table1.id = table2.id where table2.id is null

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-11-29 02:42:33 By : benzbenz900
 


 

No. 6

Guest


ตอบความคิดเห็นที่ : 1 เขียนโดย : PlaKriM เมื่อวันที่ 2013-11-26 18:52:11
รายละเอียดของการตอบ ::
Code (SQL)
select table1.* from table1 left join table2 on table1.id = table2.id where table2.id is null



ถ้าข้อมูลเยอะฯ แล้วหงุดหงิด (ใช้เวลานานมากฯ) ถ้าพูดตามประสาวัยรุ่ยก็ "ชักช้า" ระวังท้องนะพี่
ควรจะใช้ Exists มากกว่าครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-11-29 08:32:12 By : love9713
 


 

No. 7

Guest


จาก #NO 6 ขยาย คว า ม คำว่า null

ไม่มีค่า = ไม่มีค่า ตามความเข้าใจทั่วไปฯ คิดว่า null = ไม่มีค่า ซึ่งจริงฯแล้วไม่ใช่

null มีความความหมายว่า "ยังไม่ถึงเวลาที่จะมีค่า" ยกตัวอย่างเช่น
เด็กหญิง A ปัจจุบันอายุ 9 ขวบ แน่นอนว่า ณ. ปัจจุบัน "หนูยังไม่มีผัว"
แต่ก็ไม่ได้หมายความว่า ในอนาคต "เธอจะไม่มีผัว"

เพราะฉะนั้น การเปรียบเทียบค่า null ไม่มีความแน่นอนและไม่น่าเชื่อถือ นี่คือที่มาของคำว่า "ชักช้า"
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-11-29 08:46:30 By : love9713
 


 

No. 8



โพสกระทู้ ( 1,569 )
บทความ ( 2 )



สถานะออฟไลน์
Twitter Facebook Blogger

ตอบความคิดเห็นที่ : 7 เขียนโดย : love9713 เมื่อวันที่ 2013-11-29 08:46:30
รายละเอียดของการตอบ ::
IS NULL เร็วกว่านะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-11-29 09:05:24 By : itpcc
 


 

No. 9

Guest


ตอบความคิดเห็นที่ : 8 เขียนโดย : itpcc เมื่อวันที่ 2013-11-29 09:05:24
รายละเอียดของการตอบ ::
ถ้าเป็นฐานข้อมูล MySQL อาจเป็นไปได้ครับ
แต่ถ้าบน SQL Server 2008R2 คำสั่ง Exists เร็วกว่าแน่นอนครับ


[x]
เน้นว่าต้องทดสอบบนสภาพแวดล้อมจริง และเท่าเทียมกัน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-11-29 11:58:05 By : love9713
 


 

No. 10



โพสกระทู้ ( 1,569 )
บทความ ( 2 )



สถานะออฟไลน์
Twitter Facebook Blogger

ตอบความคิดเห็นที่ : 9 เขียนโดย : love9713 เมื่อวันที่ 2013-11-29 11:58:05
รายละเอียดของการตอบ ::
กระทู้นี้ใช้ MySQL นะครัส

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-11-29 12:13:31 By : itpcc
 


 

No. 11

Guest


ตอบความคิดเห็นที่ : 8 เขียนโดย : itpcc เมื่อวันที่ 2013-11-29 09:05:24
รายละเอียดของการตอบ ::
Tricks
Code (SQL)
Select * From tblXXX Order by FieldXXX
Change To
Insert Into #Temp Select * From tblXXX
Select * From #Temp Order By FieldXXX


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-11-29 12:18:24 By : love9713
 


 

No. 12



โพสกระทู้ ( 1,569 )
บทความ ( 2 )



สถานะออฟไลน์
Twitter Facebook Blogger

ตอบความคิดเห็นที่ : 11 เขียนโดย : love9713 เมื่อวันที่ 2013-11-29 12:18:24
รายละเอียดของการตอบ ::
คารวะหนึ่งจอก -/\-

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-11-29 12:47:45 By : itpcc
 


 

No. 13



โพสกระทู้ ( 3,468 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

มีหลายวิธี ถ้ากลัวว่าช้า ก็ลงอทำเบนช์มาร์คสิคับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-12-01 13:08:25 By : pjgunner.com
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ต้องการดึงข้อมูลที่ไม่ซ้ำกัน จาก 2 ตาราง ดูข้างในครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่