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

变量在 url 中设置为 get 例如) ?type=clothing&town=townname2

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

这是我坚持的一点我想获取所有带有变量 $type '服装'的列表,然后从变量 $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如果变量的值(s)来自外部,则查询很容易受到攻击。请看下面的文章,了解如何预防。通过使用PreparedStatements,您可以摆脱在值周围使用单引号。

于 2013-09-23T14:10:12.803 回答