2017-06-19 6 views
0

iはPIDとIDカラム作成関係

id | pid | name 
を含むカラム

pid | post|  
  • 連結を含む主キーと自動インクリメント

    1. 転記で2テーブルがあるとし

    とiの場合(私は、[名前]を知っていると私はpostidを取得したいと仮定)

    をポストデータをフェッチするために、私は

    $b=mysqli_query($connect,"SELECT pid FROM linking WHERE name='bla'") 
    while($a=mysqli_fetch_array($b)){ 
        $c=mysqli_fetch_array(mysqli_query($connect,"SELECT post FROM posting WHERE pid='$a["pid"]' LIMIT 1")) 
    } 
    

    のような2つのループを使用してPHPでこれを行うことができます。しかし、私はそれを行うには良い方法があると知っています誰が問合せ

    で私を助けることができる場合は、SQLでの関係を使用して、私は見えるが、内側は私が

  • +0

    たぶん、むしろ参加して、すべてを一度にフェッチを使用します。 –

    答えて

    0

    これはそれを行う必要があります理解していませんでしという参加何かを見つける:

    SELECT pid FROM linking 
    JOIN SELECT posting on linking.pid=posting.pid 
    WHERE linking.name='bla' 
    

    そして、あなたは、あなたがこのような何かを行う可能性があります第二のテーブルの最初の行だけが欲しい場合:

    SELECT * 
        FROM linking 
        LEFT JOIN posting a ON posting.pid = (
        SELECT 
         MIN(posting.pid) pid2 
        FROM posting p2 
        WHERE p2.pid2 = linking.pid 
    ) 
    WHERE Linking.name='bla' 
    
    +0

    上記のクエリでエラーが発生しました – Aniket

    +0

    クエリとエラーはどちらですか? –

    +0

    in this this --->#1064 - あなたはSQL構文に誤りがあります。あなたのMySQLサーバーのバージョンに対応するマニュアルをチェックしてください。右側の構文では、 'link.pid = posting.pidでのSELECTの投稿'の近くで使用していますwhere linking.name = 'bla' LIMIT 0,30 '、2行目,,,,, 2番目のクエリ--- >>>> 'on clause'の 'posting.pid'列が不明 – Aniket

    関連する問題