简体   繁体   English

多个表上的内部联接不返回行

[英]Inner Joins on multiple tables not returning rows

Is there anything wrong with this query? 这个查询有什么问题吗? I was all working until I have Truncated my database and now I have only one record in it and when I run this query in phpmyadmin it returns 0 rows. 我一直在工作,直到我截断了数据库,现在数据库中只有一条记录,当我在phpmyadmin中运行此查询时,它返回0行。

What am I missing? 我想念什么?

SELECT 
Users.id,
Users.firstname,
Users.lastname,
Users.email,
Users.age,
Users.phone,
Universities.Faculty AS university,
Internship.internship_type AS Internship,
City.city AS city,
Interest.interest AS interest,
Users.filename,
Users.reg_date 
        FROM Users 
        INNER JOIN City ON Users.city = City.key 
        INNER JOIN Universities ON Users.university = Universities.id 
        INNER JOIN Interes ON Users.interest = Interest.key 
        INNER JOIN Internship ON Users.internship_type = Internship.internship_type
            ORDER BY `Users`.`id` ASC;

There might not be data in all the tables so can you check it by using left join and be sure at least user table must have data: then one by one change left join to inner where you won't get data there will be the problem but if other table's data is optional then it's better to use left join: 所有表中可能没有数据,因此您可以使用左联接来检查它,并确保至少用户表必须具有数据:然后在不获取数据的内部进行一个接一个的左联接更改会出现问题但是,如果其他表的数据是可选的,那么最好使用左连接:

SELECT 
    Users.id,
    Users.firstname,
    Users.lastname,
    Users.email,
    Users.age,
    Users.phone,
    Universities.Faculty AS university,
    Internship.internship_type AS Internship,
    City.city AS city,
    Interest.interest AS interest,
    Users.filename,
    Users.reg_date 
FROM Users 
LEFT JOIN City ON Users.city = City.key 
LEFT JOIN Universities ON Users.university = Universities.id 
LEFT JOIN Interes ON Users.interest = Interest.key 
LEFT JOIN Internship ON Users.internship_type = Internship.internship_type
ORDER BY `Users`.`id` ASC;

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

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