我有几个表需要执行一些查询。代码如下所示:
$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等。
任何帮助都非常感谢!
答案 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它用于从多个表中获取数据。