使用变量选择列

时间:2013-09-23 14:08:02

标签: mysql sql database relational-database

可能不是标题的最佳描述,但我真的想不出任何东西。 我想要发生的是,我可以创建一个查询,使用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 eg)?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}'";       
}

希望我已经解释得很清楚了解。 请帮我解决这个问题

2 个答案:

答案 0 :(得分: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}'

答案 1 :(得分: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}'

要进一步了解联接,请访问以下链接:


作为旁注,如果变量的值( s )来自外部,则查询易受SQL Injection攻击。请查看下面的文章,了解如何防止它。通过使用PreparedStatements,您可以摆脱在值周围使用单引号。