我有一个MySQL查询,它试图获取包含诸如“word%”之类数据的所有页面。我有一个称为Pages2Data的多对多表。要做到这一点,我需要有一个内部连接将页面连接到Pages2Data表,然后是另一个内部连接将Pages2Data连接到数据。
以下操作不起作用,因为嵌套的SELECT子句可以返回多行。但我不知道该怎么解决:

SELECT * FROM `Pages`
   INNER JOIN `Pages2Data` ON
      (`Pages2Data`.`DataID`=(SELECT `DataID` FROM `Data` WHERE `DataWord` LIKE 'word%'))
      AND `Pages`.`PageID`=`Pages2Data`.`PageID`;

最佳答案

SELECT * FROM `Pages`
INNER JOIN `Pages2Data`
   ON `Pages`.`PageID`=`Pages2Data`.`PageID`
INNER JOIN `Data` ON `Data`.`DataID`= `Pages2Data`.`DataID`
WHERE `DataWord` LIKE 'word%';

关于mysql - 内部加入ON子句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6372468/

10-13 03:05