使用PHP在MySQL查询期间获取联接数据 我的环境:

使用PHP在MySQL查询期间获取联接数据 我的环境:,php,mysql,Php,Mysql,我有这些桌子: 表\uuuuu账单: |----------|----------|----------|--------------|---------------------| | BIL_Id | BIL_Item | BIL_Rate | BIL_Quantity | BIL_ApplicableTaxes | |----------|----------|----------|--------------|---------------------| | 1 | Ho

我有这些桌子:

\uuuuu账单

|----------|----------|----------|--------------|---------------------|
| BIL_Id   | BIL_Item | BIL_Rate | BIL_Quantity | BIL_ApplicableTaxes |
|----------|----------|----------|--------------|---------------------|
| 1        | Hot-Dog  | 4.50     | 2            | 3                   |
| 2        | Tea      | 3.25     | 3            | 3,4                 |
|----------|----------|----------|--------------|---------------------|
|----------|--------------|------------|
| STX_Id   | STX_TaxeName | STX_Amount |
|----------|--------------|------------|
| 3        | Tax 1        | 3.50       |
| 4        | Tax 2        | 6.55       |
|----------|--------------|------------|
BIL\u Id
=此表中此项目的Id。
BIL\u Item
=项目的id(参考uuuuuu销售税表)。
BIL\u数量
=客户使用的物品数量。
BIL\u applicatabletaxes
=此项目的适用税id。每个纳税id以逗号分隔。


\uuuuuuuuu销售税

|----------|----------|----------|--------------|---------------------|
| BIL_Id   | BIL_Item | BIL_Rate | BIL_Quantity | BIL_ApplicableTaxes |
|----------|----------|----------|--------------|---------------------|
| 1        | Hot-Dog  | 4.50     | 2            | 3                   |
| 2        | Tea      | 3.25     | 3            | 3,4                 |
|----------|----------|----------|--------------|---------------------|
|----------|--------------|------------|
| STX_Id   | STX_TaxeName | STX_Amount |
|----------|--------------|------------|
| 3        | Tax 1        | 3.50       |
| 4        | Tax 2        | 6.55       |
|----------|--------------|------------|
STX\u Id
=此表中此项目的Id。
STX\u TaxeName
=税款的名称。
STX\U金额
=以税款百分比表示的金额。


我的问题: 如何从这两个表中循环到
\uuuuuu计费
表中,以获得我需要应用的百分比税

例如:

  • 对于第一行,我应该有:
    3.50

  • 对于第二行,我应该有:
    3.50、6.55

希望问题清楚


谢谢。

如果您的查询措辞正确,您可以使用MySQL的
FIND_IN_SET()
函数在
BIL_applicatabletaxes
列中的CSV列表中匹配税号:

SELECT t1.BIL_Id,
       t1.BIL_Rate,
       GROUP_CONCAT(COALESCE(t2.STX_Amount, 'NA')) AS tax_due
FROM ___Billing t1
LEFT JOIN ___SalesTaxes t2
    ON FIND_IN_SET(t2.STX_Id, t1.BIL_ApplicableTaxes) > 0
GROUP BY t1.BIL_Id
<>但是,你应该认真考虑规范< >代码>帐单< /代码>表并删除CSV数据。相反,每个税目都应该有自己的记录

此处演示:


感谢您对这个问题的关注。我可以从
\uuuuuuu Billing
表开始查询,还是需要从
\uuuuuuuu salesaxtaxs
表开始查询?@user7347588是的,您可以,我更新了您的建议。