下面的查询返回一个空的结果集。为什么?我正在寻找ID为50的问题。问题似乎与查询末尾的多个AND语句有关。

编辑:但是,如果view_layout_rows_columns中不存在任何一行,则我只希望SELECT返回ID。

Table: view_layout_rows

ID    owner    rows
___________________
50    1        2



Table: view_layout_rows_columns

ID    row    columns
___________________
50    1      5
50    2      5


SELECT vlr.id
FROM view_layout_rows vlr
INNER JOIN view_layout_rows_columns vlrc
ON vlr.id = vlrc.id
WHERE vlr.rows = 2
AND (vlr.owner = 0 OR vlr.owner = 1)
AND (vlrc.row = 1 AND vlrc.columns = 5)
AND (vlrc.row = 2 AND vlrc.columns = 5)


谢谢。

最佳答案

AND (vlrc.row = 1 AND vlrc.columns = 5)
AND (vlrc.row = 2 AND vlrc.columns = 5)


所以,这不是有点矛盾吗? vlrc.row不能同时等于1和2。您可能想要

AND vlrc.row IN (1,2)
AND vlrc.columns = 5

关于mysql - 内部联接,具有相同ID的多个记录,意外的空结果集,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8560868/

10-09 00:42