2017-02-04 9 views
0

私は多くのsimillarスレッドがあることを知っていますが、どちらも必要なものが見つかりませんでした。3つのテーブルから読み込むクエリ

私は私が唯一の機能のデータを読みたい3つのテーブルmy_resourcemy_usermy_resource_featured

を持っています。

$FRArray = $db->fetchAll($db->limit("SELECT 
     resource_id, title, tag_line, 
     icon_date, last_update, price, currency, resource_state, 
     user.user_id, user.username 
     FROM my_resource AS resource 
     LEFT JOIN my_user AS user ON (user.user_id = resource.user_id) 
     WHERE resource.resource_id 
     AND resource_state = 'visible' 
     ORDER BY resource.rating_weighted DESC, resource.last_update DESC", 
    $Limit)); 

my_resource idmy_resource_featured idが同じである:私はこれが私のコードで 、すべてのデータを読み取るために、クエリを構築します。

e.x my_resourceからID1およびID3が紹介されている場合は、同じIDのは、私はこれを行うことができますことを見逃しては何my_resource_featured

への書き込みがありますか?

よろしく、それは私だったら、あなたのカラム名

SELECT 
    resource.resource_id, 
    feature_date 
    title, 
    tag_line, 
    icon_date, 
    last_update, 
    price, 
    currency, 
    resource_state, 
    user.user_id, 
    user.username 
FROM my_resource AS resource 
INNER JOIN my_resource_featured 
    ON (my_resource_featured.resource_id = resource.resource_id) 
INNER JOIN my_user AS user 
    ON (user.user_id = resource.user_id) 
WHERE 
    resource_state = 'visible' 
ORDER BY 
    resource.rating_weighted DESC, 
    resource.last_update DESC"; 

を再考したいかもしれませんが

+0

テーブルスキーマを表示できますか? – danjbh

+0

カラムの前にテーブル名を指定してカラムを選択することができます たとえば select table_name.column_name from table_name –

+0

確かに 'my_resource' http://prntscr.com/e4h1gu ' my_user' http://prntscr.com/e4h227 'my_resource_featured' http://prntscr.com/e4h2c4 – Martinovska

答えて

0

これは、あなたのためにそれを行う必要があります。

my_resourceの主キーは単なるIDではないだろうresource_id、my_userと同じです(例:my_user.id = my_resource.user_idmy_resource_featured.resource_id = my_resource.id)。

カラム名でテーブル名を参照しているときは、間違ったトラックに表示されます。他のテーブルへの参照は、そのカラムにテーブル名を持つ必要があります。

関連する問題