如何组合这些多个MySQL查询?

时间:2015-11-25 06:17:04

标签: php mysql

我有几个表需要执行一些查询。代码如下所示:

$query = "SELECT * FROM table1,table2 WHERE table1.item1='$item1' AND table2.item2='1' AND table1.item2=table2.item2";

我遇到的问题是我有大约25个类似的查询,唯一的区别是

table2.item2='1'
table2.item2='2'
...
table2.item2='25'

我希望能够做的只是编写一个查询,但仍然能够提取数据。我认为某种循环函数(我正在使用PHP)应该能够做到,但我还没有想出一个。

主要问题是我的例子中的数字1-25不是连续数字 - 它们实际上看起来像204,208,465,646等。

任何帮助都非常感谢!

3 个答案:

答案 0 :(得分:0)

使用join

SELECT * FROM table1 t1 join table2 t2
on t1.item2=t2.item2
WHERE t1.item1='$item1' AND 
t2.item2 BETWEEN 1 AND 25

答案 1 :(得分:0)

使用JOIN从多个表中获取数据。

试试这个

$sql = "";
$sql .= "SELECT * FROM table1 t1 join table2 t2
on t1.item2=t2.item2
WHERE t1.item1='$item1'"; 

for($i = 1; $i<=25; $i++)
    $sql .= " AND t2.item2='$i' ";

修改:根据您的评论,您可以使用以下选项。 为简单起见,只需获取数组中的所有值,并使用foreach循环遍历它并形成查询。

$array = array("204", "208", "465", "646");

foreach($array as $arr)
    $sql .= " AND t2.item2='$arr' ";

答案 2 :(得分:0)

查看MYSQL JOINS它用于从多个表中获取数据。