กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
273 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.0778s
...
WHERE (((orders.status)<>"ยังไม่ส่งสินค้า"));