SQL命令不返回行

时间:2013-12-05 13:01:56

标签: mysql sql database

我有一个SQL命令,我知道数据存在于条件中,但是当我运行查询时它不会返回行:

SQL:

SELECT `USER_ID`, `CAR_ID`, `AD_ID`, `BRAND`, `MODEL`
, `YEAR`, `PRICE`, `MILEAGE`, `GEARBOX`, `STATUS`, `COLOR_IN`, `COLOR_OUT`
, `BODY`, `FUEL`, `ABOUT`, `MAIN_PHOTO` 
FROM (`ads`, `cars`, `ad_extras`) 
WHERE `ads`.`USER_ID` = '2'

我该怎么办?

修改

当我SELECT *时,它也不会返回数据。

当我从2个表中选择时,它会保留数据。所以我不能从3个表中选择对吗?

2 个答案:

答案 0 :(得分:2)

你的一张桌子是空的,这很像。结果是空的。你应该使用像这样的查询

SELECT `USER_ID`, `CAR_ID`, `AD_ID`, `BRAND`, `MODEL`, `YEAR`, `PRICE`, `MILEAGE`, `GEARBOX`, `STATUS`, `COLOR_IN`, `COLOR_OUT`, `BODY`, `FUEL`, `ABOUT`, `MAIN_PHOTO` FROM `ads` natural left join `cars` natural left join `ad_extras` WHERE `ads`.`USER_ID` = '2'

我想发布这个评论,但我没有特权。

答案 1 :(得分:0)

为了从3表中查询,最好在它们之间使用JOIN子句

或者如果你想写它,因为它是使用别名来选择列

e.g

SELECT 'ads.USER_ID', 'cars.CAR_ID', 'ads.AD_ID'
FROM ('ads', 'cars', 'ad_extras') 
WHERE 'ads'.'USER_ID' = '2'

与他们各自的表