我正在尝试查询多个表以从每个表中获取信息。
主表格为wp_connections.id
,其中包含first_name
和last_name
列。
wp_connections.id
匹配其他表的所有.entry_id
列。
以下是我的查询:
SELECT wp_connections.first_name, wp_connections.last_name, wp_connections.slug, wp_connections.options, wp_connections_phone.number, wp_connections_email.address
FROM wp_connections, wp_connections_phone, wp_connections_email, wp_connections_address
WHERE wp_connections.id = wp_connections_phone.entry_id
&& wp_connections_phone.entry_id = wp_connections_email.entry_id
&& wp_connections_email.entry_id = wp_connections_address.entry_id AND state = 'Ohio' GROUP BY wp_connections.id
这是不正确还是还有其他更好的方式?
这确实显示了结果,但未显示所有结果。我不确定我是否需要加入,或者是什么。
答案 0 :(得分:1)
如果您看到一些结果,但不是全部,那么您可能需要left join
。也就是说,俄亥俄州的一些记录中缺少电话号码或电子邮件:
SELECT w.first_name, w.last_name, w.slug, w.options,
w_phone.number, w_email.address
FROM wp_connections w INNER JOIN
wp_connections_address w_address
on w.id = w_address.entry_id LEFT JOIN
wp_connections_phone w_phone
on w.id = w_phone.entry_id LEFT JOIN
wp_connections_email w_email
on w.id = w_email.entry_id
WHERE w_address.state = 'Ohio';
您的最终GROUP BY
没有做任何事情,除非某些记录在一个或多个表格中有多个条目。