gpt4 book ai didi

mysql - 在内连接上获得不止一列

转载 作者:行者123 更新时间:2023-11-29 02:05:14 24 4
gpt4 key购买 nike

我有以下问题:

SELECT c.company_id, c.company_title, c.featured, a.address, a.postal_code, pc.city, pc.region,cat.category_title, p.phone
FROM dloc.companies c
INNER JOIN dloc.address a ON ( c.address_id = a.address_id )
INNER JOIN dloc.postal_code pc ON ( a.postal_code = pc.postal_code )
INNER JOIN dloc.company_categories cc ON ( c.company_id = cc.company_id )
INNER JOIN dloc.categories cat ON ( cc.category_id = cat.category_id )
INNER JOIN dloc.phones p ON ( c.company_id = p.company_id )

WHERE c.company_title like '%gge%'

一切正常。唯一的问题是.. 好吧。 phones 包含一些公司的多个电话号码...我想我只得到第一个...或随机的,我不确定。我如何重写此查询,以便返回每家公司的所有电话号码?

最佳答案

鉴于该查询,您应该为每个 电话号码行获取一行(每个公司)。 SQL 用作关系/集合数学/理论 - 具有“-many”关系意味着返回多行(因此,您的查询应该已经执行了所需的行为)。

通常,人们在编写查询时遇到的问题不是获取多行,而是将其限制为所需的“单个”行。


编辑:

结果排序-
按照惯例,SQL 返回的东西无序除非给出某种显式排序(通过使用ORDER BY 子句)。您看到“首先”返回“随机”电话号码,因为 RDBMS 仍然必须按顺序读取/返回结果;这个顺序是在运行时(......通常)确定的,当系统选择在访问数据时使用什么索引时。完整的交互相当复杂(并且可能是特定于供应商的),所以请记住这一点:
除非您指定结果的顺序,否则结果将以随机顺序返回
时期

关于mysql - 在内连接上获得不止一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7561309/

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