提前致谢。我正在使用mysql数据库。
我有三个表carts
,courses
和checks
。我需要一行数据,它结合了购物车和课程表,不应该存在于检查表中,我从我的php函数和carts表status ='Completed'传递userid = $ id。这里的用户ID对于表格推车和支票都是相同的。
我已经编写了这个SQL查询
select c.*
from carts c
where NOT EXISTS (select 1
FROM checks
WHERE checks.order_id = c.order_id
AND c.exam_id = checks.exam_id)
AND c.userid = $id
AND c.status ='Completed'
但这并没有显示考试名称,而是显示考试ID,因为我没有加入考试。所以我对此感到有些困惑
课程表:
id | name |
1 | PMP |
2 | CAPM |
3 | Prince2 |
购物车表:
id |userid | username | orderid | exam_id |status
1 |13 | Gautham |437b310v671N888M6720 | 1 |Completed
2 |13 | Gautham |437b310v671N888M6720 | 2 |Completed
3 |13 | Gautham |437b310v671N888M6720 | 3 |Completed
4 |14 | Rakesh |678g310v671N888M6720 | 3 |Completed
检查表:
id |userid | username | orderid | exam_id |
1 |13 | Gautham |437b310v671N888M6720 | 1 |
2 |13 | Gautham |437b310v671N888M6720 | 2 |
我需要一个结合了购物车和课程表的输出,但数据不应该存在于检查表中,我从我的php函数传递userid = $ id并且购物车表状态='已完成':
1 |13 | Gautham |437b310v671N888M6720 | Prince2 |Completed
2 |14 | Rakesh |678g310v671N888M6720 | Prince2 |Completed
答案 0 :(得分:1)
试着希望你能得到预期的结果。
如果您对此有任何疑问,可以免费敲我。
SELECT carts.id,carts.userid,carts.username,carts.orderid,carts.exam_id,carts.status,courses.name FROM carts,courses where carts.exam_id = courses.id and carts.status="Completed" and carts.id not in (SELECT exam_id FROM checks WHERE 1)
答案 1 :(得分:0)
SELECT * FROM COURSES JOIN CARTS
ON COURSES.ID=CARTS.ID WHERE CARTS.USERID NOT IN
(SELECT USERID FROM FROM CHECKS)
答案 2 :(得分:0)
试试这个:
GeoData