从两个以上的表中选择数据的简便方法

时间:2019-05-05 06:58:57

标签: php mysql mysqli

我想在我的mysql数据库中选择一些行,我有3个具有不同结构的表(但每个表都有相同的列“ command”),我尝试使用创建的脚本来运行,但是看来我的脚本花了太多行。

<?php
$check1 = mysqli_query($con, "SELECT * FROM text WHERE keyword='$string'");
$check2 = mysqli_query($con, "SELECT * FROM sticker WHERE keyword='$string'");
$check3 = mysqli_query($con, "SELECT * FROM image WHERE keyword='$string'");
if(mysqli_num_rows($check1) == 0 && mysqli_num_rows($check2) == 0 && mysqli_num_rows($check3) == 0) {
    echo "success";
}
?>

还有另一种方法可以缩短我的脚本吗?谢谢:)

2 个答案:

答案 0 :(得分:0)

您应该使用“ join”查询从“ command”与check1 = 0相同的所有不同表中获取所有数据

答案 1 :(得分:0)

使用mysql JOIN子句。 这将返回3个表中的所有数据,并且您将结果作为单个数据集进行交互。

SELECT * FROM table1 JOIN table2 ON table1.keyword = table2.keyword JOIN table3 ON table3.keyword = table1.keyword;

如果两个表中都有相似的列,则在从查询返回它们时需要对它们进行别名命名,以防止发生冲突。

SELECT table1.column, table2.column FROM table1 JOIN table2 ON table1.keyword = table2.keyword JOIN table3 ON table3.keyword = table1.keyword;