我有这样的桌子

tax_id    tax_name          parent_tax_id
1         Sales Tax         0
2         Lodging Tax       0
3.        Resort Tax        1
4.        Hospitality Tax   2

Select tax_name, tax_id from taxes WHERE tax_id IN (3,4).


上面的查询将为我提供ID为3和4的两行,我需要在同一行中获取其父项的tax_name:

SELECT tax_name, tax_id,
(SELECT tax_name FROM taxes ....) as parent_tax_name
from taxes WHERE tax_id IN (3,4)


而且我只需要使用IN(),请让我知道完成此操作的方法。

提前致谢

最佳答案

与自己一起使用联接。左加入,因为并非每一行似乎都有一个父级

SELECT
  taxes.tax_name,
  taxes.tax_id,
  parent.tax_name AS parent_tax_name
FROM
  taxes LEFT JOIN taxes AS parent ON taxes.parent_tax_id = parent.tax_id
WHERE
  taxes.tax_id IN (3,4)

关于mysql - 从Mysql的同一表中获取IN()的子记录中的父名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47793147/

10-12 05:36