Mysql 联接表是否不为Null和Null
我有4张桌子: 表1:Wilayah 表2:面积 表3:人造丝 表4:彭玉朗 如何使用单个查询连接这4个表,使结果如下所示 我期望的结果 我试过这个:Mysql 联接表是否不为Null和Null,mysql,Mysql,我有4张桌子: 表1:Wilayah 表2:面积 表3:人造丝 表4:彭玉朗 如何使用单个查询连接这4个表,使结果如下所示 我期望的结果 我试过这个: SELECT penyulang_id, wilayah_name, area_name, rayon_name, penyulang_name FROM wilayah INNER JOIN area USING(wilayah_id) INNER JOIN rayon USING (wilaya
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表上,并将每个列连接到相应的表。左连接
确保在连接失败时返回数据(即Penyulang表上的值为空)
这只是将查询集中在Penyulang表上,并将每个列连接到相应的表。左连接
确保在连接失败时返回数据(即Penyulang表上的值为空)。尝试此操作
select t4.penyulang_id,t1.wilayah_name,t2.area_name,t3.rayon_name,
t4.penyulang_name
from wilayah t1 inner join area t2 on t1.wilayah_id =t2.t1.wilayah_id
inner join rayon t3 on t2.wilayah_id =t3.wilayah_id
inner join penyulang t4 on t3.wilayah_id = t4.wilayah_id
试试这个
select t4.penyulang_id,t1.wilayah_name,t2.area_name,t3.rayon_name,
t4.penyulang_name
from wilayah t1 inner join area t2 on t1.wilayah_id =t2.t1.wilayah_id
inner join rayon t3 on t2.wilayah_id =t3.wilayah_id
inner join penyulang t4 on t3.wilayah_id = t4.wilayah_id
看起来你想要彭玉朗的所有行 对于返回的每一行,您需要
- 从Wilayah(基于主键)查找单行
- 从(基于的主键)区域查找到单行
- 从人造丝(基于主键)查找到单行
LEFT
关键字指定了一个外部联接操作,其中即使没有返回右侧的匹配行,也会返回左侧的行
SELECT p.penyulang_id
, w.wilayah_name
, a.area_name
, r.rayon_name
, w.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 = r.rayon_id
ORDER BY p.penyulang_id
看起来你想要彭玉朗的所有行 对于返回的每一行,您需要
- 从Wilayah(基于主键)查找单行
- 从(基于的主键)区域查找到单行
- 从人造丝(基于主键)查找到单行
LEFT
关键字指定了一个外部联接操作,其中即使没有返回右侧的匹配行,也会返回左侧的行
SELECT p.penyulang_id
, w.wilayah_name
, a.area_name
, r.rayon_name
, w.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 = r.rayon_id
ORDER BY p.penyulang_id
从wilayah内部连接区域使用(wilayah\u id)选择penyulang\u id、wilayah\u name、area\u name、rayon\u name、penyulang\u name;从wilayah内部连接区域使用(wilayah\u id、area\u id、rayon\u id)选择penyulang\u id(wilayah\u id、area\u id、rayon\u id)
返回空请将其添加到您的问题中。选择penyulang\u id、wilayah\u name、area\u name、area\u name、rayon\u name、rayon\u name、,来自wilayah内部连接区域的penyulang_名称使用(wilayah_id)内部连接人造丝使用(wilayah_id,区域id)内部连接penyulang使用(wilayah_id,区域id,人造丝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
select t4.penyulang_id,t1.wilayah_name,t2.area_name,t3.rayon_name,
t4.penyulang_name
from wilayah t1 inner join area t2 on t1.wilayah_id =t2.t1.wilayah_id
inner join rayon t3 on t2.wilayah_id =t3.wilayah_id
inner join penyulang t4 on t3.wilayah_id = t4.wilayah_id
SELECT p.penyulang_id
, w.wilayah_name
, a.area_name
, r.rayon_name
, w.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 = r.rayon_id
ORDER BY p.penyulang_id