任何人都可以帮我优化这个查询
SELECT
`debit_side`.`account_code` CODE,
GROUP_CONCAT(DISTINCT accounts.name) AS DebitAccount,
GROUP_CONCAT(debit_side.amount) AS DebitAmount,
GROUP_CONCAT(transaction_info.voucher_date) AS DebitVoucherDate,
(SELECT
GROUP_CONCAT(DISTINCT accounts.name)
FROM
(accounts)
LEFT JOIN debit_side
ON accounts.code = debit_side.account_code
LEFT JOIN credit_side
ON debit_side.transaction_id_dr = credit_side.transaction_id_cr
LEFT JOIN transaction_info
ON transaction_info.transaction_id = credit_side.transaction_id_cr
GROUP BY credit_side.account_code
HAVING credit_side.account_code = `Code`) AS CreditAccount,
(SELECT
GROUP_CONCAT(credit_side.amount) AS CreditAmount
FROM
(accounts)
LEFT JOIN debit_side
ON accounts.code = debit_side.account_code
LEFT JOIN credit_side
ON debit_side.transaction_id_dr = credit_side.transaction_id_cr
LEFT JOIN transaction_info
ON transaction_info.transaction_id = credit_side.transaction_id_cr
GROUP BY credit_side.account_code
HAVING …Run Code Online (Sandbox Code Playgroud) 我有以下两个mysql查询,我试图将它们合并为一个.
查询1:
$getData = $this->db->query("SELECT *,accounts.name AS DebitAccountName ,debit_side.amount AS DebitAmount
FROM credit_side
LEFT JOIN debit_side ON debit_side.transaction_id_dr = credit_side.transaction_id_cr
LEFT JOIN transaction_info ON transaction_info.transaction_id = credit_side.transaction_id_cr
LEFT JOIN accounts ON accounts.code = credit_side.account_code
WHERE debit_side.account_code='1001'");
Run Code Online (Sandbox Code Playgroud)
查询2:
$getData = $this->db->query(SELECT *,accounts.name AS CreditAccountName,credit_side.amount AS CreditAmount
FROM debit_side
LEFT JOIN credit_side ON debit_side.transaction_id_dr = credit_side.transaction_id_cr
LEFT JOIN transaction_info ON transaction_info.transaction_id = debit_side.transaction_id_dr
LEFT JOIN accounts ON accounts.code = debit_side.account_code
WHERE credit_side.account_code='1001'");
Run Code Online (Sandbox Code Playgroud)
我已经尝试了UNION ALL,但这实际上在这种情况下不起作用,问题是当我回$DebitAccountName显时它也显示了$CreditAccountName我不想要的结果.
我正在使用Codeigniter,在我的视图文件中,我的目标是回应这样的结果.
<?php if(count($records) > …Run Code Online (Sandbox Code Playgroud) 我的数据库中有以下表格.这些表格midterm和finalterm包含学生的痕迹.

现在我想在单页中显示所有学生的标记表,如下所示:

我知道如何在单个表中查询但在这种情况下我遇到问题,因为有三个表.
我正在使用Codeigniter,请您帮我查看我的模型和视图文件中的代码?
提前致谢 :)
这是我的控制器:
$this->load->model('Mod_student');
$data['records1']= $this->Mod_student->check1();
$this->load->view('view_student',$data);
Run Code Online (Sandbox Code Playgroud)
这是我的看法:
<?php if(count($records1) > 0) { ?>
<?php foreach ($records1 as $row){ ?>
<table>
<tr> <td><?php echo $row['StudentName']; ?></td></tr>
<tr>
<td><?php $midDate = explode(',',$row['MidDate']);
foreach($midDate as $md)
{
echo $md;
echo '<br />' ;
}
?>
</td>
<td><?php $midDate = explode(',',$row['MidSubject']);
foreach($midDate as $md)
{
echo $md;
echo '<br />' ;
}
?>
</td>
<td><?php $midDate = explode(',',$row['MidMarks']);
foreach($midDate as $md)
{
echo $md; …Run Code Online (Sandbox Code Playgroud)