Kapernski Asked: 2022-03-09 11:24:33 +0800 CST2022-03-09 11:24:33 +0800 CST 2022-03-09 11:24:33 +0800 CST 您可以在 sql 查询的结果中包含两个单独表的列吗? 772 我正在尝试使用另一个表的列对一个表的 sql 查询结果进行排序。是否可以在我的结果中包含来自不同表格的这一列? 例如,此查询使用内部联接根据父表的列“dateReceived”对子表中的项目进行排序: SELECT c.* FROM children c INNER JOIN parent p ON c.parent_id = p.parent_id ORDER BY dateReceived ASC; 结果: 如果该视图能够以某种方式在结果中包含 Parent 表中的“dateReceived”列,则它会更有帮助。我是 SQL 新手,这可能吗? 谢谢你。 mysql join 2 个回答 Voted Best Answer J.D. 2022-03-09T11:30:21+08:002022-03-09T11:30:21+08:00 是的,您需要做的就是SELECT通过正确的别名将该列添加到您的列表中,如下所示: SELECT p.dateReceived, c.* FROM children c INNER JOIN parent p ON c.parent_id = p.parent_id ORDER BY p.dateReceived ASC; 请注意,别名p代表您的parent表,并在此查询的上下文中c代表您的表。children 此外,您不应该*在SELECT列表中使用(大多数时候),因为它对于可读性、可维护性、性能原因是不好的做法,并且容易出错。相反,您应该明确列出要返回的每一列。例如: SELECT p.dateReceived, c.child_id, c.parent_id, c.firstName, c.gender, c.age, c.shoe, c.notes FROM children c INNER JOIN parent p ON c.parent_id = p.parent_id ORDER BY p.dateReceived ASC; Brendan McCaffrey 2022-03-09T11:32:18+08:002022-03-09T11:32:18+08:00 替换c.*为*将返回两个表的结果。正如您目前所写的那样,c是children表的别名。因此,您只能从该表中获取列。 尝试这个... SELECT c.*, p.dateReceived FROM children c INNER JOIN parent p ON c.parent_id = p.parent_id ORDER BY dateReceived ASC;
是的,您需要做的就是
SELECT
通过正确的别名将该列添加到您的列表中,如下所示:请注意,别名
p
代表您的parent
表,并在此查询的上下文中c
代表您的表。children
此外,您不应该
*
在SELECT
列表中使用(大多数时候),因为它对于可读性、可维护性、性能原因是不好的做法,并且容易出错。相反,您应该明确列出要返回的每一列。例如:替换
c.*
为*
将返回两个表的结果。正如您目前所写的那样,c
是children
表的别名。因此,您只能从该表中获取列。尝试这个...