使用WHERE选择多个表

时间:2019-02-01 09:03:14

标签: php sql

有人可以告诉我如何在查询中使用WHERE选择多个表吗?

 $sql = "SELECT * FROM leerlingen, leraren WHERE voornaam= '$username' AND password= '$password'"; 

因为此查询给出了错误

3 个答案:

答案 0 :(得分:1)

SELECT table1.*, 
       table2.* 
FROM table1 
  JOIN table2 
    ON table1.id = table2.table1_id 
WHERE table1.field LIKE "Hello" 
  AND table2.field LIKE "World;

此查询应满足您的要求:从WHERE部分中具有不同条件的两个不同表中选择所有内容。 就像其他人所说的那样,请尝试始终使用显式的JOIN语法,因为它更具可读性和解释性。

由于您编写的代码不清楚,如果不这样做,我强烈建议您使用某种输入验证和转义符来防止SQL Injection

答案 1 :(得分:0)

要在where子句中使用多个表,必须在这些表之间使用联接

   select le.*,l.* from leerlingen le join  leraren l on le.col=l.col
    where l.col1=value --table leraren in where
       and le.col1=value --table leerlingen in where

然后您可以对它们应用where过滤器

答案 2 :(得分:0)

选择t1.column_names,        t2.column_names 从table1 t1   左联接table2 t2 ON t1.id = t2.t1_id t1.voornam = $ username AND t1.password = $ password t2.field ='some value';