質問

私はこのようなSQLクエリを持っています。 IAMは、私のPHPファイルかかわらず、それを実行すると、エラーが時間を与えます。 PHPのmyadminというthoruhg同じクエリを実行している場合しかし、それは秒以内に結果が得られます。

SELECT
    cake_apartments.id,
    cake_apartments.Headline,
    cake_apartments.Description,
    cake_apartments.photoset_id,
    cake_apartments.Rental_Price,
    cake_apartments.Bedrooms,
    cake_apartments.Bathrooms
FROM
    cake_apartments,cake_neighborhoods
WHERE
    (cake_apartments.Rented = 0)
    AND
    (cake_apartments.status = 'Active')
ORDER BY
    cake_neighborhoods.Name DESC 

私は時間を増加しても問題が解決していることを知っています。しかし、私はこのクエリのために30秒以上を費やす必要はありません。

役に立ちましたか?

解決

問題は、あなたが2つのテーブル間の関係を特定していないです。 phpmyadminのは、MySQLサーバが素早く行の送信を停止することができますLIMIT句を追加するためには、タイムアウトの近くになったことがない、phpmyadminの中ですぐに返します。

あなたはクエリはちょうどマンションが借りて、アクティブにされていない行を検索していると思いますが、何が本当に取得していると、その行の数*データベースの地区の数。

であります

このようなあなたのクエリを書き換えます:

SELECT
    cake_apartments.id,
    cake_apartments.Headline,
    cake_apartments.Description,
    cake_apartments.photoset_id,
    cake_apartments.Rental_Price,
    cake_apartments.Bedrooms,
    cake_apartments.Bathrooms
FROM
    cake_apartments
JOIN
    cake_neighborhoods
  ON
    cake_neighborhoods.id = cake_apartments.neighborhood_id
WHERE
    (cake_apartments.Rented = 0)
    AND
    (cake_apartments.status = 'Active')
ORDER BY
    cake_neighborhoods.Name DESC
私は、私はそれが間違って得た場合、あなたはそれを調整する必要がありますように、2つのテーブルは、ON句にどのように関連しているかで推測することを。

このノート

他のヒント

あなたが唯一の一致が存在する行をしたい場合は、

、あなたのSQL JOINはINNERを含める必要があります。

のcake_neighborhoods.cake_apartments_id のcake_neighborhoods のテーブルであなたの外部キーの名前であるならば、私は次のようにクエリを書き直す示唆します
SELECT
    cake_apartments.id,
    cake_apartments.Headline,
    cake_apartments.Description,
    cake_apartments.photoset_id,
    cake_apartments.Rental_Price,
    cake_apartments.Bedrooms,
    cake_apartments.Bathrooms,
    cake_neighborhoods.Name
FROM
    cake_apartments,cake_neighborhoods
WHERE
    (cake_apartments.Rented = 0)
    AND
    (cake_apartments.status = 'Active')
    AND
    cake_neighborhoods.cake_apartments_id = cake_apartments.id
ORDER BY
    cake_neighborhoods.Name DESC
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top