2017-10-18 3 views
-1

私は2つのテーブルを持っています。私はイメージテーブルを持っていて、私は馬テーブルを持っています。これは私のSQLですSQLが間違ったテーブルから引き出す

$sql = "SELECT * FROM Horse WHERE Horse.Owner = '$colname_List' AND Images.Image_name = Horse.Image_name AND Horse.Age > 24 AND Horse.Gender = 'Male'"; 

私はすべての私のレコードを印刷するときにID、名前、性別、年齢をエコーし​​ます。

よく私がこのメッセージをエコーすると、ImagesテーブルにIDが表示されますが、Horseテーブルの名前、性別、年齢が取得されます。私は馬のテーブルのIDが必要です。

これはなぜこれを行うのか?または私はこれを解決するために何ができますか?

+1

の両方からすべての列を返しますあなたのコードでも動作しますか? – Eric

+0

@エリックはいそれは私が混乱している理由です。 –

答えて

0

imagesテーブルがFROM句に含まれていないため、imagesテーブルからidが得られません。あなたは、FROM句、あなたにそれを追加し、その参加のためのON句でなリレーションを記述する必要があります。

SELECT * 
FROM Horse 
    INNER JOIN Images ON 
     Images.Image_name = Horse.Image_name 
WHERE Horse.Owner = '$colname_List' 
    AND AND Horse.Age > 24 
    AND Horse.Gender = 'Male' 

を今ではHorseImages

+0

しかし、私は画像IDを取得しています。それはImages TableのIDと残りをHorseから返します。私は馬からのものだけが欲しい。それは私が混乱している理由です。私は私が自分のImagesテーブルに入って、引っ張っていたIDがHorse.Image_nameと同じImage_nameを使用しているのを見て、間違ったIDを取得していた理由を知らなかった –

関連する問題