我需要帮助已经有一段时间了,但今天我来这里基本上是从你的知识中获得帮助。我目前非常困扰一个非常烦人的 SQL 问题,如下所示。
我有两张桌子。Painteditems 和特殊物品。两个表都有唯一的列名(painteditemid、specialitemid 等),但两个表共享相似的值。我想从两个表中得到结果。
假设这是我的设置:
彩绘物品
- 绘制项目名称
- 彩绘项目颜色
- 可见的
特殊物品
- 特殊物品名称
- 特殊项目颜色
- 可见的
我使用了这个查询:
SELECT *
FROM `painteditems` AS pa,
`specialitems` AS sp
WHERE (pa.`visible` = 1
OR sp.`visible` = 1)
AND (pa.`painteditemname` = 'itemname1'
OR sp.`specialitemname` = 'itemname1')
AND (pa.`painteditemcolor` = 'black'
OR sp.`specialitemcolor` = 'black')
结果是:
Showing rows 0 - 29 ( 259,040 total, Query took 39.4352 sec)
即使两个表总共只包含 10.000 行。添加这个什么也没做:
GROUP BY pa.`painteditemid`, sp.`specialitemid`
仍然是 260k 行。我应该如何处理这个?
先感谢您。
编辑:固定间距,代码块