gpt4 book ai didi

php - MySQL Query AND IN (select.... - 需要帮助澄清它是一个子例程

转载 作者:太空宇宙 更新时间:2023-11-03 11:07:06 26 4
gpt4 key购买 nike

你能告诉我我的解释是否正确(最后的 AND 部分)吗?

$q = "SELECT title,name,company,address1,address2 
FROM registrations
WHERE title != 0 AND id IN (
SELECT registrar_id
FROM registrations_industry
WHERE industry_id = '$industryid'
)";

下面是我不确定的地方:

... AND id IN (select registrar_id from registrations_industry where industry_id='$industryid')

解释:从连接表 registrations_industry 中获取 id(registrations id field) 等于 registrar_id(field) 的任何匹配,其中 industry_id 等于集合 $industryid

这个 select 语句是否被认为是一个子例程,因为它是主查询中的一个查询?

所以一个例子是使用寄存器表 id 搜索到 23 看起来像:

注册(表格)

id=23,title=owner,name=mike,company=nono,address1=1234 s walker lane,address2

registrations_industry(表格)

id=256, registrar_id=23, industry_id=400<br>
id=159, registrar_id=23, industry_id=284<br>
id=227, registrar_id=23, industry_id=357

我假设这会返回 3 条具有相同注册表数据的记录,当然还有不同的 registrations_industry 返回值。

最佳答案

对于给定的测试数据集,您的查询将返回一条记录。这个:id=23,title=owner,name=mike,company=nono,address1=1234 s walker lane,address2
要获得三个具有相同注册表数据和不同 registrations_industry 的记录,您需要使用 JOIN

像这样:

SELECT r.title, r.name, r.company, r.address1, r.address2 
FROM registrations AS r
LEFT OUTER JOIN registrations_industry AS ri
ON ri.registrar_id=r.id
WHERE r.title!=0 AND ri.industry_id={$industry_id}

关于php - MySQL Query AND IN (select.... - 需要帮助澄清它是一个子例程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11216463/

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