我在PHP脚本中有一个包含以下示例信息的表:
Custid Name Type Date 1 Roy A 20150715 1 Roy -C 20150715 2 Bart B 20150715
在我的SELECT
查询中,我只想让客户使用type = A and type = B
,但如果是type = -C
,那么我想从查询中删除A
或B
答案 0 :(得分:2)
如果您需要为任何行中没有“-C”类型的客户选择所有记录,那么您首先需要找到要排除的客户。这可以通过以下查询完成:
SELECT Custid FROM yourtable WHERE `type` = '-C';
现在您应该能够找到所有其他客户:
SELECT * FROM yourtable
WHERE custid NOT IN (
SELECT Custid FROM yourtable WHERE `type` = '-C'
);
以上只是实现这一目标的一种方法。您还可以对上述子查询使用临时表或JOIN
。
答案 1 :(得分:1)
尝试使用自我加入。
SELECT c_details.custid, c_details.name, c_details.type, c_details.date
FROM customers c_details
INNER JOIN customers c_type ON c_details.custid = c_type.custid
AND c_type.type <> '-C'