gpt4 book ai didi

MySQL 查询/子查询问题

转载 作者:行者123 更新时间:2023-11-29 04:11:00 25 4
gpt4 key购买 nike

我正在构建一个查询以从多个表中收集数据。我想从一个表中获取所有 item_ids,然后根据该 item_id 从其他表中收集其他数据来构建结果。我可以发誓这是可能的;但是,我似乎无法让它工作。这是我正在尝试做的一个例子:

SELECT item_id AS mainID, 
(SELECT anotherField
FROM anotherTABLE
WHERE item_id=mainID)
FROM theMainTable;

当然这只是一个例子。本质上,我需要在子查询中使用主查询中的 item_id。我发誓我以前做过这个,但我不记得是怎么做到的......

我尝试只用一个查询来做到这一点,而不用任何额外的编程语言。我想最终将其设置为存储过程。感谢或任何帮助。

更新

看起来加入确实有效...感谢您提供的所有帮助。

这是我的最终查询,以防万一其他人遇到这样的事情:

SELECT DISTINCT
Q.item_id, Q.timestamp, Q.employee,
QA.employeeNotes, Q2.itemDesc, Q2.itemExtraData
FROM
itemLog Q
LEFT JOIN
itemComments QA ON Q.item_id = QA.item_id
LEFT JOIN
itemLog Q2 ON Q.item_id = Q2.item_id AND Q2.type = 'begin'
WHERE
Q.verb = 'itemStatus'
AND NOT (QA.employeeNotes IS NULL);

最佳答案

SELECT a.item_id AS mainID, b.anotherField 
FROM theMainTable a
INNER JOIN anotherTABLE b ON a.item_id=b.item_id

您应该避免在 select 语句中使用子查询,因为它们将为从主表返回的每个行进行计算,而内部连接可确保适当的优化和表路径。

关于MySQL 查询/子查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11158230/

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