1

我有几张我想加入的桌子。

我只是不知道如何做我需要的事情,这有点难以解释,所以我将向您展示到目前为止的查询:

SELECT  exp_channel_data.field_id_102,
        exp_channel_data.field_id_104,
        exp_channel_data.field_id_126,
        exp_channels.deft_status
FROM exp_channel_data
  INNER JOIN exp_channels
    ON exp_channels.channel_id = exp_channel_data.channel_id
  INNER JOIN exp_channel_titles
    ON exp_channels.channel_id = exp_channel_titles.channel_id
WHERE exp_channels.channel_id = 18
AND exp_channel_titles.channel_id = 19

不起作用的位是 AND exp_channel_titles.channel_id = 19

问题是我得到了一个 0 结果集。然而我知道这两列都有数据。尽管它们是完全独立的数据集。

exp_channels

包含所有数据,如日期、时间、价格等

exp_channel_titles

包含所有标题信息

但我需要将两者结合在一起,以便获得以下结果集:

“职称、日期、教师、时间”等

所以我只是想知道是否有人对如何做到这一点有解决方案?

谢谢!

4

1 回答 1

2

因为您使用的是内部连接,所以channel_id一行的所有内容都应该相同。

你的意思是OR

SELECT  exp_channel_data.field_id_102,
        exp_channel_data.field_id_104,
        exp_channel_data.field_id_126,
        exp_channels.deft_status
FROM exp_channel_data
  INNER JOIN exp_channels
    ON exp_channels.channel_id = exp_channel_data.channel_id
  INNER JOIN exp_channel_titles
    ON exp_channels.channel_id = exp_channel_titles.channel_id
WHERE exp_channels.channel_id = 18
OR exp_channel_titles.channel_id = 19

或者你可以使用IN.

WHERE exp_channels.channel_id IN (18, 19)
于 2012-06-18T08:53:49.733 回答