1

タイトルの説明としては最適ではないかもしれませんが、本当に何も思いつきませんでした。私が実現したいのは、リレーションシップとして userID を使用してリストからタイプを選択し、次に町を選択するクエリを作成できることです。

TABLE listings
saleID userID   type          description
1      23     clothing       nice clothing
2      45     clothing     More nice Clothing

TABLE users
userID    country      county         town
23         uk          county       townname1
24         uk          county       townname2

変数は get として URL に設定されます 例) ?type=clothing&town=townname2

if (!isset($type)){
$query = "SELECT * FROM listings";
}
if (isset($type)) {
$query = "SELECT * FROM listings WHERE type = '{$type}'";
}

これは私が行き詰まっているビットです。変数 $type ' clothing ' を持つすべてのリストを取得し、変数 $town の町を持つユーザーから選択したい

if (isset($town)) {
   $query = "SELECT users.town listings.userID listings.type FROM listings 
   WHERE type = '{$type}' 
   INNER JOIN users 
   ON users.town = '{$town}'";       
}

理解できるようにこれを十分に説明したことを願っています。この最後のクエリを手伝ってください

4

2 に答える 2

1
SELECT u.town l.userID, l.type 
FROM listings l
INNER JOIN users u on u.userID = l.userID   
WHERE l.type = '{$type}' 
AND u.town = '{$town}'
于 2013-09-23T14:10:00.430 に答える
0
SELECT  b.town, a.userID, a.type 
FROM    listings a
        INNER JOIN users b 
            ON  a.userID  = b.userID    
WHERE   a.type = '{$type}' AND
        b.town = '{$town}'

結合についてさらに詳しく知りたい場合は、以下のリンクにアクセスしてください。


補足として、変数のSQL Injection値が外部から取得された場合、クエリは脆弱です。予防方法については、以下の記事をご覧ください。を使用すると、値を一重引用符で囲む必要がなくなります。PreparedStatements

于 2013-09-23T14:10:12.803 に答える