2012-03-25 13 views
0

私はSQLに非常に慣れています。異なるテーブルから多くの属性を取得する必要があります。私は彼らの名前の下でそれらを検索して、ユーザーのイメージと詳細を探しています。私は私の結果で次の属性が必要複数のテーブルに対するMYSQLI SQLクエリが失敗する

私はテーブルからテーブル1

アカウントIDと画像から2

をすべての詳細が必要になります。例えば

表4からのパス

私は試しました

私はちょうどそれをstructreするかどうかはわからない、私が試してみました?しかし、私は、これは単一のクエリの下で行うことができると確信して、この問題を解決する複数のクエリにこれをアップspilting検討しています
SELECT table1.id table1.name table1.last_name table 2.account_id table4.path FROM table1 table 2 table4 WHERE table4.image_id = table 2.image AND table1.first_name LIKE '%tim%' AND table1.last_name LIKE '%smith%' 

回数は、phpmyadminですべてのクエリが失敗します

誰かが正しい方向に私を指すことを願っていますか?以下は、私のテーブルの例です、事前に感謝!

table1 
------------ 
id (pk) 
name 
last_name 

table 2 
-------------- 
account id (pk) 
id (fk) 
image (holds image id from table 4) 

table 3 
----------------- 
account id (fk) 
image id (fk) 
date 

table 4 
-------------------- 
image id (pk) 
path 
date 

答えて

2

これを試してみてください:

SELECT t1.*, t2.account_id, t4.path 
    FROM table1 t1 
     INNER JOIN table2 t2 ON t2.id = t1.id 
     INNER JOIN table4 t4 ON t4.image_id = t2.image 
+0

ありがとうございましたAlejoBrz、しかし、私はphpmyadminがテーブルを見ていないのでt1を削除しなければなりませんでした。 – Alan

2

だから、table1 & table2INNER JOIN秒を持っている、とtable4 & table2間。 MySQLでは、JOINは暗黙のうちにINNER JOINを意味します。

SELECT 
    table1.id, 
    table1.name, 
    table1.last_name, 
    table2.account_id, 
    table4.path 
FROM 
    table1 
    JOIN table2 ON table1.id = table2.id 
    JOIN table4 ON table2.image = table4.image_id 
WHERE table1.name LIKE '%tim%' AND table1.last_name LIKE '%smith%' 

編集:元WHERE句に追加するのを忘れ)

+0

こんにちはマイケル、あなたの助けに感謝しますが、クエリは、しかし、それを微実行空のセットを返しますか?私はちょうど確認するためにチェックしている! – Alan

+0

あなたのお手伝いをしてくれてありがとうございました – Alan

関連する問題