php - 我应该怎么做才能显示来自 2 个或更多不同表的所有数据,我尝试使用 JOIN 但我仍然不明白?
问题描述
我英文不太好,请谅解,我也是第一次用这个,非常感谢^^
我想在 CodeIgniter 中将数据库中的所有数据显示到我的视图中,但问题是,我想显示到我的视图中的数据来自 2 个或更多不同的表,我尝试使用JOIN
但我不明白它的含义。我成功地只展示了 1 张桌子,但我不明白如何从 2 张或更多桌子中展示。
我有 2 张桌子:
我想显示上面 2 个表格中的所有数据
这是我的代码,用于显示数据库中我的表中的两个或多个数据及其显示错误
控制器
public function V_home()
{
$dataOrganisasi = $this->M_main->getSKMorganisasi();
$dataSimpanOrganisasi = array();
$dataSimpanOrganisasi ['organisasi']= $dataOrganisasi;
$this->load->view('V_mahasiswa',$dataSimpanOrganisasi);
}
模型
function getSKMorganisasi(){
$query = $this->db->JOIN('data_skm_organisasi','data_skm_kejuaraan');
$results = $this->db->get();
return $query->result_array();
}
看法
<?php foreach ($organisasi as $dataSimpan) { ?>
<div>
<?php echo $dataSimpan->Lembaga; ?>
<?php echo $dataSimpan->tingkatan; ?><br><br>
</div>
<?php } ?><br><br>
<?php foreach ($organisasi as $dataSimpan) { ?>
<div>
<?php echo $dataSimpan->jenisKegiatan; ?>
<?php echo $dataSimpan->tingkatan; ?><br><br>
</div>
<?php } ?>
当我尝试运行时出现此错误
发生数据库错误错误号:1064
您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 2 行的 JOIN
data_skm_organisasi
USING (data_skm_kejuaraan
)附近使用正确的语法选择 * 加入
data_skm_organisasi
使用 (data_skm_kejuaraan
)文件名:C:/xampp/htdocs/Aplikasi_SKM2/system/database/DB_driver.php
行号:691
解决方案
您可以连接这两个表并显示其中所有数据的一种方法JOIN
是这样的:
SELECT table1.*, table2.* FROM data_skm_organisasi AS table1
LEFT JOIN data_skm_kejuaraan AS table2 ON table1.namaKegiatan = table2.namaKegiatan AND table1.namaMahasiswa AND table2.namaMahasiswa
ORDER BY table1.id ASC
namaMahasiswa
这将返回这 2 个表中和具有相同值的所有数据namaKegiatan
。
请注意:如果您确实使用table1.*
并且table2.*
您可能无法访问所有数据,因为列将具有相同的名称,因此建议始终指定您需要返回aliases
的所有字段并在具有两个表中的名称相同。
前任。SELECT table1.tingkatan, table2.tingkata AS tingkata2 ....
但是您确实应该考虑在查询中添加某种WHERE
条件,这样如果您有太多记录,您最终不会浪费太多时间来加载数据。
PS 这是我对您的表结构的最佳估计,因为您没有在这些表上设置适当的关系
推荐阅读
- javascript - React - 将计算样式传递给 div 的语法
- tensorflow - tf.keras.layers.BatchNormalization 不接受 float64 作为输入类型
- python - 防止Python中某些模块之间的依赖关系(静态分析)
- python - 通过数字图像处理再现拍摄屏幕造成的莫尔条纹
- sql - Data Type different from reference table
- php - 告诉laravel会话中有多少数据
- scala - 如何从期货序列中仅读取成功值
- javascript - 递归 Steam API 调用不会终止
- c++ - How to a sub-string from middle of a string
- python - 在 django Updateview 中保存表单集的问题