我有一些我想加入的桌子。
我只是不知道如何做我需要的方法,这有点难以解释所以我会告诉你到目前为止的查询:
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
包含所有标题信息
但我需要将两者结合在一起,这样我才能得到一个结果集:
“标题,日,老师,时间”等
所以我只是想知道是否有人有解决方法如何做到这一点?
谢谢!
答案 0 :(得分: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)