2015-07-21 87 views
2

國外ID我有兩個MySQL表是這樣的:獲取關係MySQL表

table 'names': 
{ 
    name varchar(25), 
    date_id, 
    FOREIGN KEY (date_id) REFERENCES dates(date_id) 
} 

table 'dates' 
{ 
    date datetime, 
    date_id INT PRIMARY KEY AUTO_INCREMENT 
} 

,我需要選擇特定日期的所有名稱。目前我提出兩個請求。第一個獲得日期的ID。第二個名字。莫名其妙地只能提出一個要求嗎?

$sql = "SELECT date_id WHERE date='$date'"; // $date is safe variable 
$sql = "SELECT name FROM names WHERE date_id='$id'"; 
+0

'select * from names內部連接日期names.date_id = dates.date_id'? –

回答

1

是的,你可以用INNER JOIN

$sql = "SELECT names.name" . 
     " FROM names INNER JOIN dates ON names.date_id = dates.date_id" . 
     " WHERE dates.date='$date'"; 
1
select p1.* from names p1 inner join dates p2 on p1.date_id =p2.date_id 
2

嘗試:

SELECT `name`, `date_id` 
FROM `dates` 
INNER JOIN `names` 
ON `names`.`date_id` = `dates`.`date_id` 
WHERE `dates`.`date` = '$date'; 
0

您可以使用簡單的JOIN來選擇數據:

SELECT `name`, `date_id` 
FROM `dates` 
INNER JOIN `names` 
ON `names`.`date_id` = `dates`.`date_id` 
WHERE `dates`.`date` = 'your_date_variable';