2016-09-15 5 views
1

このクエリに問題はありますか?私は自分のデータベースを切り捨てて、今はレコードを1つしか持っていないので、phpmyadminでこのクエリを実行すると、0行が返されるまで私はすべて作業していました。内部複数のテーブルのジョインが行を返さない

私には何が欠けていますか?

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; 
+0

このユーザーは任意の利益/インターンシップを持って、大学にありますか?それ以外の場合は、LEFT OUTER JOINを使用します。 –

+0

Usersテーブルには、すべての情報が含まれており、すべての列に適切なデータが入力されています。 – Daniel

答えて

2

は、あなたが参加し、少なくともユーザテーブルにデータを持っている必要がありますことを確認し、左使用して、それを確認することができ、すべてのテーブルにデータが存在されない可能性があります:1つの変更によって、その後1は、内側に参加したところ、あなたはしません参加左を使用することをお勧めしますが問題になるが、他のテーブルのデータがオプションである場合になるデータの取得:

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; 
+0

ここに問題があったのは、 'Internship ON Users.internship_type = Internship.key'だったのですが、それは' INNER JOINインターンシップON Users.internship_type = Internship.internship_type'でした。 – Daniel

+0

最後にあなたの投稿の間違いを見ることもできます左結合。それが私に気付いたのです。ありがとうございました:) – Daniel

+0

これは私がちょうど変更されたものがインナーからレフトまであなたの質問からすべてですが、私は最初から同じようになっています、私は違いを得ていないか、適切に理解していません。 – Susang

関連する問題