Mysql

您可以在 sql 查詢的結果中包含兩個單獨表的列嗎?

  • March 8, 2022

我正在嘗試使用另一個表的列對一個表的 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 新手,這可能嗎?

謝謝你。

是的,您需要做的就是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;

引用自:https://dba.stackexchange.com/questions/308443