Php 仅从我的SELECT语句返回4个ID
在我的查询中,我将通过6个表从所有6个表中获取信息。查询确实有效,但我只返回前4个ID以及链接到这些ID的信息。有人能看出我的问题出在哪里吗 PS:我通过foreach循环我的查询,这样所有的信息都会显示在一个漂亮的表中 选择v.klantNummer, v、 纳姆, v、 telefoon, v、 阿迪斯, v、 邮政编码, 纳姆先生, sm.CSnummer, 奥德霍德斯达姆酒店 从'vesting'变为v, 系统作为s, 作为sc的系统合同, onderhoudsLog作为ol, systeemMeldkamer作为sm, meldkamers AS mk 其中sm.id=s.id 和mk.id=s.id v.id=s.vestigingID s.id=sc.systeemID 和sc.id=ol.SYSTEEMContracid 这是我的荣幸:Php 仅从我的SELECT语句返回4个ID,php,mysql,select,foreach,Php,Mysql,Select,Foreach,在我的查询中,我将通过6个表从所有6个表中获取信息。查询确实有效,但我只返回前4个ID以及链接到这些ID的信息。有人能看出我的问题出在哪里吗 PS:我通过foreach循环我的查询,这样所有的信息都会显示在一个漂亮的表中 选择v.klantNummer, v、 纳姆, v、 telefoon, v、 阿迪斯, v、 邮政编码, 纳姆先生, sm.CSnummer, 奥德霍德斯达姆酒店 从'vesting'变为v, 系统作为s, 作为sc的系统合同, onderhoudsLog作为ol, syst
foreach($DB->SELECT->onderhoudsGegevens() as $row) {
?>
<tr>
<td><?= $row['klantNummer'] ?></td>
<td><?= $row['contactnaam'] ?></td>
<td><?= $row['telefoon'] ?></td>
<td><?= $row['adres'] ?></td>
<td><?= $row['postcode'] ?></td>
<td><?= $row['naam'] ?></td>
<td><?= $row['CSnummer'] ?></td>
<td><?= datetimeToDate($row['onderhoudsDatum']) ?></td>
</tr>
<?php
}
?>
下面是您的查询,它是使用连接的更传统的形式重新编写的。如果您的一个或多个 表中没有满足条件的行,可以将其各自的联接更改为左联接或外联接
SELECT
v.klantNummer,
v.contactnaam,
v.telefoon,
v.adres,
v.postcode,
mk.naam,
sm.CSnummer,
ol.onderhoudsDatum
FROM `vestiging` AS v
JOIN systeem AS s
ON v.id = s.vestigingID
JOIN systeemContract AS sc
ON s.id = sc.systeemID
JOIN onderhoudsLog AS ol
ON sc.id = ol.systeemContractID
JOIN systeemMeldkamer AS sm
ON sm.id = s.id
JOIN meldkamers AS mk
ON mk.id = s.id
例如,如果meldlamers表是限制结果的表,您可以尝试:
SELECT
v.klantNummer,
v.contactnaam,
v.telefoon,
v.adres,
v.postcode,
mk.naam,
sm.CSnummer,
ol.onderhoudsDatum
FROM `vestiging` AS v
JOIN systeem AS s
ON v.id = s.vestigingID
JOIN systeemContract AS sc
ON s.id = sc.systeemID
JOIN onderhoudsLog AS ol
ON sc.id = ol.systeemContractID
JOIN systeemMeldkamer AS sm
ON sm.id = s.id
LEFT JOIN meldkamers AS mk
ON mk.id = s.id
尝试上面的查询以查看是否获得更多行。如果没有,请将LEFT一次添加到其他行,直到看到更多行。因为查询中没有限制,您可以通过phpMyAdmin或MySQL控制台直接查看数据库,看看是否应该有更多的结果毕竟所有表中只能有4行?如果您对表使用正确的联接,可能会更容易理解。如前所述,如果其中一个表只有4个匹配行,您的结果将受到该表的限制。没有足够的信息让我们真正回答您的问题,我们所能做的只是猜测。您可以从查询中删除一些表和联接,这样就只剩下基本内容了,跟踪似乎是您的主表。请记住,如果这些额外表中的任何一个表没有用于跟踪的行的数据,那么该行将不会显示。也许他需要这些子表中的一些作为外部联接,这样就不会影响他的结果。。。但是,是的,我们只是猜测。信息太少,无法继续。谢谢!这成功了!不得不把左边的位置放在一排,但它成功了:,谢谢你!