来自不同表的mysql多个WHERE

时间:2015-08-18 18:31:20

标签: php mysql

我想输出一个不错的用户表。但是我的查询需要来自多个表的WHERE。

目前......我的查询如下:

tableView.tableHeaderView = searchController.searchBar

输出(数组)的数据是来自$ statsTable的2倍,WHERE无效。我只想选择$ statsTable ...

如何进行? 谢谢:))

2 个答案:

答案 0 :(得分:3)

$statsTable = "someTable";
$userTable  = "someOtherTable";

$someQueryForData = "SELECT stats.* 
                     FROM $statsTable stats
                     JOIN $userTable user
                     ON (user.id_stats = stats.id)
                     AND (user.some_status = '0')
                     WHERE (stats.some_value BETWEEN $rangeFrom AND $rangeTo) 
                     ORDER BY stats.some_value ASC LIMIT 0,10";

编辑:解释你基本上需要一个连接,建立查询的方式使你的方式不那么可读,你无法真正关联你的表。

在您使用“ON”语句后使用联接,您可以添加“AND” 并使用该连接作为使用ITSELF

的地方更快的地方

答案 1 :(得分:0)

只需使用加入。

将表加入一个唯一的ID,然后您将获得两个表中的值。

W3 Schools Joins

应该是这样的

SELECT stats.* as stats, user.* as user
FROM statsTable
INNER JOIN userTable
ON stats.userId=user.userId
WHERE user.some_status = 0 AND (stats.some_value BETWEEN $rangeFrom AND     $rangeTo)
LIMIT 0,10;