简体   繁体   English

如何使用3个表进行mysqli内部联接

[英]how to mysqli inner join with 3 tables

In the end I need results to contain all data from all 3 tables. 最后,我需要结果包含所有3个表的所有数据。 How to join the 3 tables so all is present in the end. 如何将3个表联接在一起,以便最后全部显示。 Here is what I have so far: 这是我到目前为止的内容:

if ($results = $db->query("SELECT * FROM HWData
                        LEFT JOIN ClassData
                        ON HWData.class = ClassData.class
                        LEFT JOIN Judges
                        ON Judges.groupnum = ClassData.groupnum
                        ORDER BY HWData.entrynum",
                        MYSQLI_USE_RESULT)) {
$result_set = mysqli_fetch_all($results, MYSQLI_ASSOC);
echo json_encode($result_set);

The results are not as expected. 结果不符合预期。 It's odd that console.log[i]['groupnum']; console.log[i]['groupnum'];很奇怪 shows correct groupnum but $("#output").append("<p>"+data[i]['groupnum']); 显示正确的组编号,但是$("#output").append("<p>"+data[i]['groupnum']); shows only 1's 仅显示1

3 tables as follows: 3张表如下:

ClassData 类数据

groupnum    abbr
0   DQB
0   DQC
1   SUM
1   PP
1   FOS
1   VANF
1   VANS
2   AFCF
2   AFCS
2   ICCS
2   CCS
3   LSUF
3   LTMS
4   HL
4   MC

Judges 评委

judge   group
Coleen  4
Daniel  3
Aaron   2
Jeff    1

HWData 硬件数据

entrynum    fname   class
1   Esteban FOS
2   Dalia   PP
3   Sheri
4   Sheri   HL
5   Sheri   MC
10  Danita  ICCS
11  Chris   AFCS

Ok, so i figured out you can use multiple joins. 好的,所以我知道您可以使用多个联接。

if ($results = $db->query("SELECT * FROM HWData
                           LEFT JOIN ClassData
                           ON HWData.Abbr = ClassData.Abbr
                           LEFT JOIN Judges
                           ON Judges.groupnum = ClassData.groupnum",
                            MYSQLI_USE_RESULT)) {
$result_set = mysqli_fetch_all($results, MYSQLI_ASSOC);
echo json_encode($result_set);
$results->close();
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM