[英]How Can I Combine These Multiple MySQL Queries?
我有几个表需要执行一些查询。 代码如下所示:
$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 等。
非常感谢任何帮助!
使用join
SELECT * FROM table1 t1 join table2 t2
on t1.item2=t2.item2
WHERE t1.item1='$item1' AND
t2.item2 BETWEEN 1 AND 25
使用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' ";
看看MYSQL JOINS它用于从多个表中获取数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.