我有这个使用 UNION 的查询:
$this->db->query('
SELECT DISTINCT users.user_pic, users.id, users.username, contacts.accepted
FROM users
LEFT JOIN contacts ON users.id = contacts.user_1
WHERE contacts.user_2 = ' . $this->session->userdata('user_id') . '
UNION DISTINCT
SELECT DISTINCT users.user_pic, users.id, users.username, contacts.accepted
FROM users
LEFT JOIN contacts ON users.id = contacts.user_2
WHERE user_1 = ' . $this->session->userdata('user_id')
);
有没有办法查看 session “user_id”是否在 contacts.user_1 或 contacts.user_2 中遇到?也许通过更改查询,或者我是否可以在 View 中使用一些 if 语句?
提前致谢
乔治
最佳答案
是的,你可以添加另一个字段来选择,你可以像 (1,2) 这样识别
$this->db->query('
SELECT 1 as table_id,DISTINCT users.user_pic, users.id, users.username, contacts.accepted
FROM users
LEFT JOIN contacts ON users.id = contacts.user_1
WHERE contacts.user_2 = ' . $this->session->userdata('user_id') . '
UNION DISTINCT
SELECT 2 as table_id,DISTINCT users.user_pic, users.id, users.username, contacts.accepted
FROM users
LEFT JOIN contacts ON users.id = contacts.user_2
WHERE user_1 = ' . $this->session->userdata('user_id')
);
关于php - MySQL UNION 查询分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8202379/