这些表如下所示:
Table: Shops
ShopCode ShopName
-------- --------
A Aladdin
B Backstreet
C Clerk's Store
D Debs Tool
Table: Sale
ShopCode Product
-------- -------
A Hammer
A Thermometer
A Compass
B Eraser
B Hammer
C Thermometer
C Hammer
D Thermometer
查找同时出售锤子和温度计的商店的名称。结果表将是
ShopName
--------------
Aladdin
Clerk's Store
我以为下面的查询可以用,但是返回的空集
mysql> SELECT Shops.ShopName FROM Shops
-> JOIN Sale ON Shops.ShopCode=Sale.ShopCode
-> WHERE Sale.Product='Hammer' AND Sale.Product='Thermometer'
-> GROUP BY Shops.ShopCode;
也尝试用OR代替AND,但不起作用(退还所有商店)。有什么可能的解决方案?
为了更清楚一点,我想选择同时包含商品(锤子和热电偶)的商店,即使商店B出售锤子而商店D出售温度计,也将不包括在内。只有同时出售这两种商品的A和C才会出现在结果上
有两个相当简单的选择。
您可以在销售表中加入两次,每个项目一次。如果您跳过DISTINCT
,则如果商店出售多个锤子或温度计,则可能会得到重复的值。
SELECT DISTINCT s.shopname
FROM shops s
JOIN sale s1 ON s.shopcode = s1.shopcode AND s1.product='hammer'
JOIN sale s2 ON s.shopcode = s2.shopcode AND s2.product='thermometer';
…或者您可以用锤子或温度计找到所有匹配项,并计算有多少个不同的值。如果有两个可能的值,而您同时获得了两个,则表示已设置。
SELECT s.shopname
FROM shops s
JOIN sale s1 ON s.shopcode = s1.shopcode
WHERE s1.product IN('hammer','thermometer')
GROUP BY s.shopname
HAVING COUNT(DISTINCT s1.product)=2;
一个SQLfiddle来测试两者。
问题内容: 我正在尝试选择mysql表中的重复行,它对我来说很好,但问题是它不是让我选择该查询中的所有字段,而是让我选择用作不同的字段名,让我写查询更好的了解 第一个工作正常 现在,当我尝试选择所有字段时,我最终会出现错误 我正在尝试选择最新的重复项,比如说ticket_id 127是行ID 7、8、9的3倍,因此我想选择一次,最新条目在这种情况下为9,这适用于所有其余项ticket_id的 任何
问题内容: 我有获取ajax请求的事件链接,我想获取链接的选择器并获取属性。我正在为AJAX回调设置ajax。 但是我得到这个错误 我有获取ajax请求的事件链接,我想获取链接的选择器并获取属性。我正在为AJAX回调设置ajax。 但是我得到这个错误 的HTML 问题答案: 如果要在回调内部引用该元素(即处理程序绑定到的元素),请使用 代替 选择元素的父元素,即元素似乎没有属性。 从 文档中 :
问题内容: 有没有办法插入预设值和我从选择查询中获得的值?例如: 我有“字符串”的值和数字5,但是我必须从这样的选择中找到[int]值: 那给我那个ID放在table1里面。 如何将其合并为一个语句? 问题答案: 使用查询,并将已知值放入:
问题内容: 我知道这个问题已经被问过很多次了,但是我已经尝试了好几个小时,却没有任何效果,我是php和ajax的新手,所以,我可能会遗漏一个我不知道的小东西,我想要在这里实现的目的是,我希望用户选择一个食物组,然后基于该组显示配料表。 我单独测试了process.php文件,它运行良好,还测试了脚本,发生了什么事,当我注释掉并键入alert(parent)时,从$ .ajax开头的行不起作用了,我
问题内容: 我想知道如何从MySQL表中选择一个值。该表包括列和其他列(是自动递增的,并且是唯一的)。给定用户名,我想将一个会话变量设置为等于给定用户名的列中的值。这是我已经尝试过的代码: 到目前为止,我得到: 可捕获的致命错误:无法将类stdClass的对象转换为字符串。 强制转换为字符串类型不能解决问题。 问题答案: 不要在查询中的字段名称或表名称中使用引号。 提取对象后,您需要通过属性/属性
以下代码起作用: 如何将第二行重构为: 您对所选的******选项使用了什么?