繁体   English   中英

MySQL连接两个表,其中PHP变量的WHERE语句已经存在

[英]MySQL join two tables where WHERE statement from PHP variable already exists

我通常会像这样加入:

$query = "SELECT table1.ColA, table2.ColC ".
     "FROM table1, table2".
        "WHERE table1.uid = table2.uid";

但在这种情况下,WHERE部分已经用于使用PHP变量指定记录。 在这种情况下如何加入表2?

SELECT SQL_CALC_FOUND_ROWS ColA, ColB FROM Table1 WHERE value = $value

他们已经加入了。 它是一样的

SELECT table1.ColA, table2.ColC 
FROM table1
INNER JOIN table2 ON  table1.uid = table2.uid

如果需要添加更多条件,请将它们添加到WHERE子句中:

SELECT table1.ColA, table2.ColC
FROM table1, table2
WHERE table1.uid = table2.uid
  AND value = $value;

或者,使用ANSI SQL-92语法:

SELECT table1.ColA, table2.ColC 
FROM table1
INNER JOIN table2 ON  table1.uid = table2.uid
WHERE  value = $value;

请注意:您应该始终使用后面的语法,使用JOIN连接WHERE子句的instaed表。 这是推荐的方法。 有关更多信息,请参阅此帖子

请试试这个

$query = "SELECT table1.ColA, table2.ColC FROM table1, 
            table2 WHERE table1.uid = table2.uid and table1.value=$value";

要么

$query = "SELECT table1.ColA, table2.ColC FROM table1 INNER JOIN table2 
               ON (table1.uid = table2.uid) WHERE table1.value=$value";

尝试这个 ::

SELECT 
SQL_CALC_FOUND_ROWS ColA, 
ColB 

FROM table1, table2
WHERE value = $value 
and table1.uid = table2.uid

或者您可以通过表格加入表格

SELECT 
SQL_CALC_FOUND_ROWS ColA, 
ColB 

FROM table1 INNER JOIN table2 on table1.uid = table2.uid
WHERE value = $value 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM