从两个表中选择*

时间:2013-06-16 14:55:14

标签: php mysql

我正在构建php搜索框,这是我的查询

SELECT * FROM table1, table2 WHERE table1.title AND table2.posts LIKE '$query%' LIMIT 10

查询后代码是

if($query) {
while ($result = $query ->fetch_object()) {
echo '<li onClick="window.open(\''.$result->guid.'\');">'.$result->post_title.'</li><br>';
            }
        } else {
            echo 'ERROR: There was a problem with the query.';
        }

它不会取任何东西。我认为这是来自查询的东西。 请帮忙..

5 个答案:

答案 0 :(得分:3)

将您的查询更改为:

SELECT * FROM table1, table2 WHERE table1.title LIKE '$query%' 
AND table2.posts LIKE '$query%' LIMIT 10

答案 1 :(得分:2)

你不能像你想要的那样加入条件,每个结社都需要拥有它自己的陈述

SELECT * FROM table1, table2 WHERE table1.title LIKE '$query%' AND table2.posts LIKE '$query%' LIMIT 10

答案 2 :(得分:1)

$result = $query->query("SELECT * FROM `table1` AS `t1` JOIN `table2` AS `t2` ON `t1`.`id` = `t2`.`t1id` WHERE `t1`.`title` LIKE '%" . $query . "%' AND `t2`.`posts` LIKE '%" . $query . "%' LIMIT 10;");

if($result ) {
  while ($result = $query->fetch_object()) {
    echo '<li onClick="window.open(\'' . $result->guid . '\');">' . $result->post_title . '</li><br>';
  }
}
else
  echo 'ERROR: There was a problem with the query.';

我认为它看起来应该是这样的。

你应该使用join并有一个字段来连接这两个表:t1id = t2t1id

如果您愿意,可以使用table1table2,但最好还是使用JOIN。

使用LIKE时需要注意的一点是,最好在之前和之后使用%:LIKE '%" . $query . "%

答案 3 :(得分:0)

改变:

SELECT * FROM table1, table2 WHERE table1.title AND table2.posts LIKE '$query%' LIMIT 10

为:

SELECT * FROM table1, table2 WHERE table1.title LIKE '$query%' AND table2.posts LIKE '$query%' LIMIT 10

或任何你想要标题的变量

答案 4 :(得分:0)

Suhail Patel可能是正确但不完整。

取决于您的表格定义     SELECT * FROM table1,table2 WHERE table1.name LIKE x AND table2.name LIKE y;

将返回从每个表中选择的字段的所有可能组合。因此,如果table1包含满足LIKE的以下行:

1
2
3

和table2包含满足LIKE的这些行:

6
7
8

然后你的结果将包含3x3 = 9个答案:

1, 6
1, 7
1, 8
2, 6
2, 7
2, 8
3, 6
3, 7
3, 8

要避免这种情况,您必须定义两个表之间的关系。例如:

SELECT * FROM table1, table2 WHERE table1.name LIKE x AND table2.name LIKE y AND table1.type = table2.id;

这也可以重写为JOIN语句。有关联接的更多信息,此链接应该有所帮助: http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html