gpt4 book ai didi

MySQL 在 WHERE 语句中使用 SELECT - 最好的方法?

转载 作者:行者123 更新时间:2023-11-29 21:42:57 26 4
gpt4 key购买 nike

我对 mysql 比较陌生,所以我希望你能为我指出正确的方向。我有两个表,“产品”是有关我们待售商品的信息,“报价”表是我们销售该产品的各个供应商的定价和供应商信息。两个表都有相关的“sku”列。 “报价”表中可以有多个供应商销售相同的 SKU。

当我查询产品表中的各种内容时,我只想要有供应商从“优惠”表中销售该产品的结果。现在我正在使用如下查询:

SELECT *
FROM products
WHERE
products.sku IN (SELECT offers.sku FROM offers)
AND
products.name = 'Iphone'
AND
blah.....

对于有很多结果的查询,这可能需要比我想要的更长的时间。有没有更有效的方法来查询这两个表?也许通过 JOIN 来实现?谢谢。

最佳答案

EXISTSJOIN 可能比 IN 性能更高,但这并不能保证您的优化器不会处理以下情况与您的查询相同。

SELECT *
FROM products
WHERE EXISTS ( SELECT 1
FROM offers
WHERE products.sku = offers.sku)
AND products.name = 'Iphone'
AND blah.....

sku 和过滤条件中使用的其他字段建立索引可能会大大提高您所寻求的性能。

关于MySQL 在 WHERE 语句中使用 SELECT - 最好的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34343650/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com