Trong DB của tôi, tôi có bảng "bán hàng" và "sales_item". Đôi khi, có gì đó không ổn và việc bán hàng được ghi lại nhưng không phải là mặt hàng bán hàng. Vì vậy, tôi đang cố gắng lấy SalesID từ "Bán hàng" của mình mà không có bất kỳ hàng nào trong bảng Sales_item.
So I'm trying to get the salesID from my table "sales" that haven't got any rows in the sales_item table.
Đây là truy vấn MySQL mà tôi nghĩ sẽ hoạt động, nhưng nó không:
SELECT s.*
FROM sales s NATURAL JOIN sales_item si
WHERE s.date like '" . [[isset[$_GET['date']]] ? $_GET['date'] : date["Y-m-d"]] . "%'
AND s.sales_id like '" . [[isset[$_GET['shop']]] ? $_GET['shop'] : substr[$_COOKIE['shop'], 0, 3]] ."%'
HAVING count[si.sales_item_id] = 0;
Bất kỳ suy nghĩ?
hỏi ngày 15 tháng 6 năm 2010 lúc 12:25Jun 15, 2010 at 12:25
OsdaveosdaveOSdave
8,5107 Huy hiệu vàng44 Huy hiệu bạc59 Huy hiệu đồng7 gold badges44 silver badges59 bronze badges
Bí danh bảng V không đến từ đâu? Hiển thị định nghĩa bảng sẽ là một ý tưởng thực sự tốt;]
Nó phải là một tham gia bên trái:
SELECT *
FROM table1
LEFT JOIN table2 ON[table1.id = table2.table1_id]
WHERE table2.table1_id IS NULL
Bảng 1 là bảng bán hàng của bạn và bảng2 là bạn Sales_item
Đã trả lời ngày 15 tháng 6 năm 2010 lúc 12:30Jun 15, 2010 at 12:30
Tobias P.Tobias P.Tobias P.
4.4072 Huy hiệu vàng28 Huy hiệu bạc35 Huy hiệu Đồng2 gold badges28 silver badges35 bronze badges
2
Luôn luôn được sử dụng với nhóm bởi
GROUP BY si.sales_item_id
HAVING count[si.sales_item_id] = 0;
Đã trả lời ngày 15 tháng 6 năm 2010 lúc 12:30Jun 15, 2010 at 12:30
Tobias P.Tobias P.Salil
4.4072 Huy hiệu vàng28 Huy hiệu bạc35 Huy hiệu Đồng20 gold badges120 silver badges153 bronze badges
1
Luôn luôn được sử dụng với nhóm bởi
Salilsalil45,7K20 Huy hiệu vàng120 Huy hiệu bạc153 Huy hiệu đồng
Bạn không cần phải tham gia các bảng, bạn có thể sử dụng một cái gì đó như:Jun 15, 2010 at 12:29
[...] WHERE sales.id NOT IN [SELECT sales_id FROM sales_item]
Victor StanciuĐiều này chỉ lọc doanh số không có bất kỳ mục Sales_item tương ứng nào.3 gold badges25 silver badges34 bronze badges
2
Đã trả lời ngày 15 tháng 6 năm 2010 lúc 12:29
SELECT S.*
FROM SALES S
WHERE NOT EXISTS [
SELECT 1
FROM SALES_ITEM SI
WHERE SI.SALES_ITEM_ID = S.ID]
Victor Stanciuvictor Stanciu
11.6K3 Huy hiệu vàng25 Huy hiệu bạc34 Huy hiệu đồngJun 15, 2010 at 13:17
Cho sự hoàn chỉnh ....Phil Wallach
MySQL có thể có vấn đề với các điều khoản.19 silver badges19 bronze badges
Đã trả lời ngày 15 tháng 6 năm 2010 lúc 13:17
Phil Wallachphil Wallach
SELECT * from sales where sales_id not in [SELECT DISTINCT sales_id from sales_item]
3.31819 Huy hiệu bạc19 Huy hiệu đồng
Đã trả lời ngày 15 tháng 6 năm 2010 lúc 12:30Jun 15, 2010 at 12:30
Tobias P.Tobias P.ZombieSheep
4.4072 Huy hiệu vàng28 Huy hiệu bạc35 Huy hiệu Đồng12 gold badges66 silver badges113 bronze badges
Luôn luôn được sử dụng với nhóm bởi
Salilsalil
45,7K20 Huy hiệu vàng120 Huy hiệu bạc153 Huy hiệu đồng
Bạn không cần phải tham gia các bảng, bạn có thể sử dụng một cái gì đó như:
[...] WHERE sales.id NOT IN [SELECT sales_id FROM sales_item]
Jun 15, 2010 at 12:33
Điều này chỉ lọc doanh số không có bất kỳ mục Sales_item tương ứng nào.Kari
Đã trả lời ngày 15 tháng 6 năm 2010 lúc 12:295 bronze badges
Victor Stanciuvictor Stanciu
SELECT s.id, count[*] as no_of_items
FROM sales s NATURAL JOIN sales_item si
WHERE s.date like '" . [[isset[$_GET['date']]] ? $_GET['date'] : date["Y-m-d"]] . "%'
AND v.sales_id like '" . [[isset[$_GET['shop']]] ? $_GET['shop'] : substr[$_COOKIE['shop'], 0, 3]] ."%'
GROUP BY si.salesitem_id
HAVING no_of_items = 0;
11.6K3 Huy hiệu vàng25 Huy hiệu bạc34 Huy hiệu đồngJun 15, 2010 at 12:34
Cho sự hoàn chỉnh ....Michał Pękała
MySQL có thể có vấn đề với các điều khoản.5 gold badges22 silver badges32 bronze badges