Heim  >  Fragen und Antworten  >  Hauptteil

Es gibt eine mehrdeutige where-Klausel für die Spalte „Status“.

cursor.execute(
"SELECT * FROM `xplt_cases` LEFT JOIN `dgn_cases` ON dgn_cases.rid = xplt_cases.rid WHERE `status`=%(checker)s",
{
  'checker': status
})

Ich bin neu bei MySQL und versuche, zwei Tabellen miteinander zu verbinden, um Ergebnisse zu erhalten, erhalte jedoch die Fehlermeldung: Spalte status in der Where-Klausel ist mehrdeutig.

„status“ ist mein Funktionsparameter.

P粉127901279P粉127901279237 Tage vor376

Antworte allen(2)Ich werde antworten

  • P粉066224086

    P粉0662240862024-02-26 16:25:42

    嗯,看来您的两个表都有一个 status 列。尝试用表名(别名)作为前缀:

    SELECT * FROM `xplt_cases` x LEFT JOIN `dgn_cases` ON dgn_cases.rid = xplt_cases.rid 
    WHERE x.`status`=%(checker)s

    Antwort
    0
  • P粉850680329

    P粉8506803292024-02-26 13:56:33

    错误 Column 'status' in where 子句是不明确的 意味着您在查询中加入的 2 个表都有一个名为 status 的列,这就是为什么 Mysql 告诉您 column 状态是不明确的

    您可以通过指示表中要在查询中使用哪个 status 列来解决此问题。示例;

    xplt_cases.`status`=%(checker)s"

    dgn_cases.`status`=%(checker)s"

    Antwort
    0
  • StornierenAntwort