Php 如何修复我的查询
我有以下疑问:Php 如何修复我的查询,php,sql,postgresql,pdo,Php,Sql,Postgresql,Pdo,我有以下疑问: SELECT table_a.field1, table_b.field1 FROM table_a, table_c LEFT JOIN table_b ON table_a.field1=table_b.field1 WHERE table_a.field2 LIKE ? AND table_a.field3 = ? AND table_a.field4 = ? AND table_b.field1 IS NULL AND table_c.id = table_b.c_id
SELECT table_a.field1, table_b.field1
FROM table_a, table_c
LEFT JOIN table_b
ON table_a.field1=table_b.field1
WHERE table_a.field2 LIKE ?
AND table_a.field3 = ?
AND table_a.field4 = ?
AND table_b.field1 IS NULL
AND table_c.id = table_b.c_id
AND table_c.field1 = ?
AND table_c.field2 = ?
AND table_c.field3 = ?
但是,当执行时,我得到以下错误:
o: SQLSTATE[42P01]: Undefined table: 7 ERROR: invalid reference to FROM-clause entry for table "table_a" at character 114
HINT: There is an entry for table "table_a", but it cannot be referenced from this part of the query.
我正在使用PostgreSQL和PDO
知道如何解决这个问题/我的查询出了什么问题吗?这个:
FROM table_a, table_c
LEFT JOIN table_b
ON table_a.field1=table_b.field1
似乎正在尝试使用表a
中的列左键联接表c
和表b
,这没有多大意义。尝试从以下内容改写整个内容:
FROM table_a
LEFT JOIN table_b ON table_a.field1 = table_b.field1
JOIN table_c ON table_c.id = table_b.c_id
还请注意,我已将表c
和表b
的连接条件移动到FROM子句中,这样您就不再需要在WHERE子句中使用它了。请参阅