Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试使用mysql php获取某些值?_Php_Mysql - Fatal编程技术网

尝试使用mysql php获取某些值?

尝试使用mysql php获取某些值?,php,mysql,Php,Mysql,看看我的桌子,我正试图从美国得到ups发货的水果,以及任何不包括美国的水果。看看我的桌子,苹果包括美国和ups,浆果不包括美国。所以我想得到苹果和浆果。下面的查询是我得到的最好的查询,但它失败了,它不包括美国 SELECT fruit FROM table fruit WHERE shipping = 'ups' AND country ='USA' GROUP BY fruit table fruit fruit country shipping apple

看看我的桌子,我正试图从美国得到ups发货的水果,以及任何不包括美国的水果。看看我的桌子,苹果包括美国和ups,浆果不包括美国。所以我想得到苹果和浆果。下面的查询是我得到的最好的查询,但它失败了,它不包括美国

SELECT fruit FROM table fruit WHERE shipping = 'ups' AND country ='USA' GROUP BY fruit


table fruit        
fruit  country    shipping  
apple   USA        ups
apple   China      ups
apple    UK        ups
banana    USA      fedez
banana   Russia    fedez
banana   Italy     fedez
berry    Italy     fedez
berry    China     fedez
berry    French    fedez
试试这个

从水果中选择水果(运输='ups'和国家='USA')或不在('USA')

试试这个

从水果中选择水果(配送='ups'和国家='USA')或国家!='美国水果集团

你可以写这个

SELECT fruit FROM fruit WHERE (shipping = 'ups' AND country = 'USA') OR fruit NOT IN (SELECT fruit FROM fruit WHERE country = 'USA' GROUP BY fruit);

因此,如果我是对的,第一条语句将返回您
apple
。第二个有一个嵌套查询,它将返回
apple
banana
,因为两者都有country USA,语句将查找不在该组中的水果,因此它是
berry
。因此,最终它只会返回
apple
berry

如果它能反映一切,我会在我的电脑上试试

SELECT DISTINCT f.fruit 
FROM TableFruit AS f 
LEFT OUTER JOIN TableFruit AS usa ON f.fruit=usa.fruit and usa.country='USA'
WHERE f.shipping = 'ups' AND f.country ='USA' 
   OR usa.country IS NULL

说明:如果没有满足联接条件的行,则外部联接将为联接表中的所有列返回null。在本例中,它正在查找一行
b
,该行与
f
和美国国家具有相同的结果。因此,如果没有与美国国家的行,则国家将为空。

感谢您的回复。它呼应一切。我正在使用GROUP BY,但它仍然反映了所有内容。我想原因是桌子上有三排香蕉。当你说国家不在(“美国”)时,其他两排没有美国,但仍然是香蕉,这就是为什么它呼应每一种水果。如何解决此问题?是否希望它不显示包含
香蕉的行
?@FahadKazmi banana包括美国。因此它不应显示。它会回显每个水果。感谢您的回复。它呼应一切。我正在使用GROUP BY,但它仍然反映了所有内容。我想原因是桌子上有三排香蕉。当你说国家不在(“美国”)时,其他两排没有美国,但仍然是香蕉,这就是为什么它呼应每一种水果。如何解决这个问题?请查看您的数据库。如果香蕉不在美国,它就不在美国。所以它显示了一切。你想做什么?你和我现在几乎得到了相同的答案,但你的答案在更新后仍然是错误的,因为在
之后,你正在比较
国家
,但是你的嵌套查询返回
水果
,因此它仍然会回显每个水果。很抱歉我的错误。是的,你是对的。谢谢你这是工作,但它返回
[apple,berry,berry,berry]
,我想OP只是想要
[apple,berry]
。您可以将
分组按
移动到主选择的末尾。@akinuri啊,是的,我没有看到。现在编辑答案。你介意我编辑查询以使其更具可读性吗?我认为这值得一提:)@akinuri这是这篇文章中用小写字母写的唯一答案:(继续:)
SELECT fruit
FROM fruit
WHERE
    (country = "USA" AND shipping = "ups")
    OR
    fruit NOT IN (
        SELECT fruit FROM fruit WHERE country = "USA"
    )
GROUP BY fruit
SELECT DISTINCT f.fruit 
FROM TableFruit AS f 
LEFT OUTER JOIN TableFruit AS usa ON f.fruit=usa.fruit and usa.country='USA'
WHERE f.shipping = 'ups' AND f.country ='USA' 
   OR usa.country IS NULL