我使用下面的MySQL語句獲取Drupal的帖子,其中ID匹配跨表:WHERE和語句在MySQL
SELECT node.nid,node_revisions.nid,url_alias.nid, 1, FROM_UNIXTIME(node.created), node_revisions.body, node_revisions.title, node_revisions.teaser, url_alias.slug, FROM_UNIXTIME(node.changed), if(node.type='blog', 'post', 'page')
FROM node, node_revisions, url_alias
WHERE (node.type='blog' OR node.type='page')
AND (node.nid=node_revisions.nid)
AND (node.nid=url_alias.nid)
LIMIT 10;
(請注意,我已經做了一些修改url_alias,如果有人在嘗試要複製這個)
我必須使用兩個和聲明,因爲,出於某種原因,這是行不通的:
...
WHERE ...
AND (node.nid=node_revisions.nid=url_alias.nid)
...
爲什麼我不能比擬的ID在一個聲明呢?
這看起來真棒。我還沒有使用JOIN,或者是LEFT JOIN,所以我還沒有真正理解它,但它似乎更具可讀性,我同意。謝謝! – bozdoz
這是一個很好的解決方案,但不是一個好的答案。其他答案實際上是詳細說明爲什麼我無法在一個AND語句中比較ID。你可以將這個添加到你的答案,所以我可以標記你的正確嗎? – bozdoz
@bozdoz我爲您的原始問題添加了更深入的答案。 –