mysql - Join Table whether Not Null and Null

标签 mysql

我有 4 个表:

Table 1: Wilayah

wilayah_id                  wilayah_name
    1                         wilayah_1
    2                         wilayah_2

Table 2: Area

area_id             wilayah_id            area_name
   1                     1                  area_1
   2                     1                  area_2
   3                     2                  area_3
   4                     1                  area_4

Table 3: Rayon

rayon_id          wilayah_id           area_id          rayon_name
    1                   1                   1               rayon_1
    2                   2                   3               rayon_2

Table 4: Penyulang

penyulang_id      wilayah_id       area_id        rayon_id      penyulang_name
    1                  1               1             null           penyulang_1
    2                  1               null            1            penyulang_2
    3                  2               3              null          penyulang_3

如何使用单个查询连接这 4 个表,以便结果看起来像这样?

Result that I expect.

penyulang_id   wilayah_name      area_name       rayon_name      penyulang_name
      1           wilayah_1       area_1          null           penyulang_1
      2           wilayah_1         null          rayon_1       penyulang_2
      3           wilayah_2        area_3         null            penyulang_3

我试过这个:

SELECT
    penyulang_id,
    wilayah_name,
    area_name,
    rayon_name,
    penyulang_name
FROM
    wilayah
INNER JOIN area USING(wilayah_id)
INNER JOIN rayon USING (wilayah_id, area_id)
INNER JOIN penyulang USING (wilayah_id, area_id,rayon_id)

但显示空结果

最佳答案

SELECT
    penyulang_id,
    wilayah_name,
    area_name,
    rayon_name,
    penyulang_name
FROM
    Penyulang p
    LEFT JOIN Wilayah w ON w.wilayah_id=p.wilayah_id
    LEFT JOIN Area a ON a.area_id=p.area_id
    LEFT JOIN Rayon r ON r.rayon_id=p.rayon_id
ORDER BY penyulang_id ASC

这只是将查询集中在 Penyulang 表上,并将每一列连接到相应的表。 LEFT JOIN 确保在连接失败时返回数据(即 Penyulang 表上的值为空)。

关于mysql - Join Table whether Not Null and Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36512493/

相关文章:

mysql - 使用加载数据文件时出现错误 1062

mysql - 重新安装了 XAMPP,现在无法登录 phpMyAdmin/XAMPP 不起作用

mysql - Django 1.6 w/gunicorn - 操作错误 : (2006, 'MySQL server has gone away' )

mysql - 尝试打印部门中博士生的部门名称,除了那些选修大学几何的专业

PHP-MySql : How to store and retrieve checkbox value with other option

php - Hangman php从数据库中生成新的随机单词

mysql - 使用自动生成列的值进行后续查询

php - 将 PHP 数组插入为 MYSQL 列

php - MySQL从表中获取数据并检查表行中是否存在userid

mysql - 如何将查看 2 个表的这 2 个查询合并为 1 个查询?