我想要进行一个查询,从 tbl_assign
中选择所有行,其中 tbl_unit_status
不包含某些值。
//tbl_assign
assign_id order_id order_no_first
---------------------------------------
1 1 C
2 2 C
3 10 C
4 11 C
5 17 C
//tbl_unit_status
status_id assign_id status_status
---------------------------------------
1 1 Cutter
2 1 QC Jithin
3 1 Rack
4 1 Delivery
5 2 Cutter
6 3 Rack
7 4 Cutter
8 5 Despatch
所需的输出是,
assign_id order_id order_no_first
---------------------------------------
2 2 C
4 11 C
我想消除 tbl_assign
中的行,其中 tbl_unit_status
包含值 Rack、Despatch、Delivery
和 QC%
我已经尝试过查询,
SELECT a.assign_id, a.order_id, a.order_no_first FROM tbl_assign a WHERE a.assign_id NOT IN (SELECT u.assign_id FROM tbl_unit_status u WHERE u.status_status NOT LIKE "QC%" OR u.status_status NOT IN ("Delivery", "Despatch", "Rack"))
上面的代码没有返回所需的输出。请有人帮助我。
最佳答案
输出:
assign_id | order_id | order_no_first
----------|----------|--------------
2 | 2 | C
----------|----------|--------------
4 | 11 | C
代码:
SELECT a.assign_id,
a.order_id,
a.order_no_first
FROM tbl_assign a
WHERE a.assign_id NOT IN
(
SELECT u.assign_id
FROM tbl_unit_status u
WHERE u.status_status IN( 'Rack', 'Despatch', 'Delivery' )
OR u.status_status LIKE 'QC%'
);
尝试一下:http://sqlfiddle.com/#!9/71b6b0/1/0
摘要:
返回 tbl_assign
表中的 assign_id
值与子选择返回的值不相关的所有行。
子选择返回 tbl_unit_status
表中行的所有 assign_id
值。它们的 status_status
以“QC”开头或等于“Rack”、“Delivery”或“Despatch”。
关于php - 如果表2在某些条件下包含相同的值,则从表1中删除行 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47589270/