กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
        
           445   2		  
          
					  
		    URL.หัวข้อ / 
		    URL
        
        อยากได้เป็นข้อมูลที่ตรงข้ามกับการค้นหาด้วยคำสั่ง select ที่มีความสัมพันธ์หลายๆตาราง      
		
    
      อยากได้เป็นข้อมูลที่ตรงข้ามกับการค้นหาด้วยคำสั่ง select ที่มีความสัมพันธ์หลายๆตาราง 
ผมเขียนคำสั่งนี้เพื่อแสดงรายการสินค้าทั้งหมดที่สถานะการส่งสินค้าอาจเป็นค่าว่าง หรือ ไม่มีการสั่งซื้อในรายการสินค้านั้น แต่ถ้ายังไม่ส่งสินค้าก็จะไม่แสดงขึ้นมาในหน้านี้
 
แต่ผมลองเขียนแล้วเรียกแต่ข้อมูลที่เป็นค่าเหล่านี้มาได้ซึ่งเป็นข้อมูลที่ตรงกันข้ามกับที่ผมต้องการ
 
SELECT DISTINCTROW product.p_id, brand.brand_name, product.p_model, product.p_price, orders_detail.p_id, orders.status
FROM (brand INNER JOIN product ON brand.brand_id = product.brand_id) INNER JOIN (orders INNER JOIN orders_detail ON orders.order_id = orders_detail.order_id) ON product.p_id = orders_detail.p_id
WHERE (((orders.status)="ยังไม่ส่งสินค้า"));
 
 
0001 AAA A20 5,000 0001 ยังไม่ส่งสินค้า
0008 ZZZ Z10 7,500 0008 ยังไม่ส่งสินค้า
 
 
คือผมอยากจะให้แสดงข้อมูลที่ตรงข้ามจากนี้แทน คือให้แสดง รหัสสินค้าที่ 0002 -0007
 
ไม่ทราบว่าใช้ NOT ได้หรือเปล่าครับ
รบกวนลองเขียนคำสั่งให้ดูหน่อยนะครับ
ขอบพระคุณอย่างสูงครับ
    
  ผมเขียนคำสั่งนี้เพื่อแสดงรายการสินค้าทั้งหมดที่สถานะการส่งสินค้าอาจเป็นค่าว่าง หรือ ไม่มีการสั่งซื้อในรายการสินค้านั้น แต่ถ้ายังไม่ส่งสินค้าก็จะไม่แสดงขึ้นมาในหน้านี้
แต่ผมลองเขียนแล้วเรียกแต่ข้อมูลที่เป็นค่าเหล่านี้มาได้ซึ่งเป็นข้อมูลที่ตรงกันข้ามกับที่ผมต้องการ
SELECT DISTINCTROW product.p_id, brand.brand_name, product.p_model, product.p_price, orders_detail.p_id, orders.status
FROM (brand INNER JOIN product ON brand.brand_id = product.brand_id) INNER JOIN (orders INNER JOIN orders_detail ON orders.order_id = orders_detail.order_id) ON product.p_id = orders_detail.p_id
WHERE (((orders.status)="ยังไม่ส่งสินค้า"));
0001 AAA A20 5,000 0001 ยังไม่ส่งสินค้า
0008 ZZZ Z10 7,500 0008 ยังไม่ส่งสินค้า
คือผมอยากจะให้แสดงข้อมูลที่ตรงข้ามจากนี้แทน คือให้แสดง รหัสสินค้าที่ 0002 -0007
ไม่ทราบว่าใช้ NOT ได้หรือเปล่าครับ
รบกวนลองเขียนคำสั่งให้ดูหน่อยนะครับ
ขอบพระคุณอย่างสูงครับ
				2 Reply in this Topic. Dispaly 1  pages and you are on page number 1 
				
        
    2 @R02250    
        
    
      ผมลองโค้ดใหม่นี้แล้วครับ แต่ติดอยู่นิดนึง ว่าจะเอาส่วน orders.status  'ยังไม่ส่งสินค้า' มาเชื่อมอย่างไรครับ 
 
select *
from product INNER JOIN brand ON product.brand_id = brand.brand_id
where NOT EXISTS(select distinct orders_detail.p_id from orders_detail,orders where orders_detail.p_id = product.p_id )
 
ในตาราง orders มี order_id กับ status
ในตาราง orders_detail มี order_id , p_id
ผมยังมองไม่เห็นเลยครับว่าจะเอามาเชื่อมกันอย่างไร
    
  select *
from product INNER JOIN brand ON product.brand_id = brand.brand_id
where NOT EXISTS(select distinct orders_detail.p_id from orders_detail,orders where orders_detail.p_id = product.p_id )
ในตาราง orders มี order_id กับ status
ในตาราง orders_detail มี order_id , p_id
ผมยังมองไม่เห็นเลยครับว่าจะเอามาเชื่อมกันอย่างไร
      Time: 0.0620s
    
      
		
...
WHERE (((orders.status)<>"ยังไม่ส่งสินค้า"));